Pandas: Bessere Anzeige von negativem Timedelta

Erstellt am 11. Aug. 2017  ·  3Kommentare  ·  Quelle: pandas-dev/pandas

Codebeispiel, wenn möglich ein kopierfähiges Beispiel

In [2]: pd.to_timedelta(0, unit='ms') - pd.to_timedelta(123, unit='ms')
Out[2]: Timedelta('-1 days +23:59:59.877000')

Problembeschreibung

Timedelta('-1 days +23:59:59.877000') ist keine sehr klare Anzeige eines negativen Timedelta

Es könnte (für viele Anwendungen) besser sein, negative Timedelta anzuzeigen, wie Timedelta('0 days -00:00:00.123000') oder Timedelta('-0 days 00:00:00.123000')

Enhancement Output-Formatting Timedelta

Hilfreichster Kommentar

Ich würde sagen, es lohnt sich wirklich, da die aktuelle Darstellung für negative Zahl wirklich sehr verwirrend ist.

Aber was das Brechen der Konsistenz angeht, denke ich, dass die String-Darstellung für negative Zeitdeltas keine Art von Benutzerfreundlichkeit im Sinn hatte. Ich habe folgende Diskussion gefunden (im Prinzip alles, was ich dazu finden konnte):

https://lists.gt.net/python/dev/1129944

Erinnert sich jemand an die Gründe für dieses Verhalten?

Ich erinnere mich an keine bessere Begründung als das, was ich in den Dokumenten geschrieben habe: "String
Darstellungen von Zeitdelta-Objekten werden ähnlich normalisiert wie ihre
interne Vertretung."

Ich denke, es wäre besser, die Python-Standardimplementierung der Zeichenfolge zu ändern (anstatt dies für jedes Projekt, einschließlich Pandas, ad-hoc zu tun), aber da dies nicht der Fall sein wird, glaube ich, dass es ein gute Idee, Pandas hinzuzufügen, weil es so nicht intuitiv ist.
Ich kann mir keinen Fall vorstellen, in dem es jemand bevorzugen würde, wenn es um negative Zeitdeltas geht.

Alle 3 Kommentare

xref #15633 Wir folgen hier der (verwirrenden) Führung von Python, aber ich nehme an, wir könnten bei der Repr.

In [2]: import datetime

In [3]: datetime.timedelta() - datetime.timedelta(milliseconds=123)
Out[3]: datetime.timedelta(-1, 86399, 877000)

In [4]: str(datetime.timedelta() - datetime.timedelta(milliseconds=123))
Out[4]: '-1 day, 23:59:59.877000'

Ich nehme an, obwohl ich mir nicht sicher bin, ob es die Inkonsistenz hier wert ist.

Ich würde sagen, es lohnt sich wirklich, da die aktuelle Darstellung für negative Zahl wirklich sehr verwirrend ist.

Aber was das Brechen der Konsistenz angeht, denke ich, dass die String-Darstellung für negative Zeitdeltas keine Art von Benutzerfreundlichkeit im Sinn hatte. Ich habe folgende Diskussion gefunden (im Prinzip alles, was ich dazu finden konnte):

https://lists.gt.net/python/dev/1129944

Erinnert sich jemand an die Gründe für dieses Verhalten?

Ich erinnere mich an keine bessere Begründung als das, was ich in den Dokumenten geschrieben habe: "String
Darstellungen von Zeitdelta-Objekten werden ähnlich normalisiert wie ihre
interne Vertretung."

Ich denke, es wäre besser, die Python-Standardimplementierung der Zeichenfolge zu ändern (anstatt dies für jedes Projekt, einschließlich Pandas, ad-hoc zu tun), aber da dies nicht der Fall sein wird, glaube ich, dass es ein gute Idee, Pandas hinzuzufügen, weil es so nicht intuitiv ist.
Ich kann mir keinen Fall vorstellen, in dem es jemand bevorzugen würde, wenn es um negative Zeitdeltas geht.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen