In [2]: pd.to_timedelta(0, unit='ms') - pd.to_timedelta(123, unit='ms')
Out[2]: Timedelta('-1 days +23:59:59.877000')
Timedelta('-1 days +23:59:59.877000')
n'est pas un affichage très clair d'un Timedelta
négatif
Il pourrait être préférable (pour de nombreux usages) d'afficher des Timedelta
négatifs comme Timedelta('0 days -00:00:00.123000')
ou Timedelta('-0 days 00:00:00.123000')
xref #15633 Nous suivons l'exemple (déroutant) de python ici, mais je suppose que nous pourrions nous arrêter sur le 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'
Je suppose, mais pas vraiment sûr que cela vaille l'incohérence ici.
Je dirais que cela en vaut vraiment la peine, car la représentation actuelle des nombres négatifs est vraiment très déroutante.
Mais à propos de la rupture de cohérence, je suppose que la représentation sous forme de chaîne pour les deltas de temps négatifs n'était pas censée avoir une quelconque convivialité à l'esprit. J'ai trouvé la discussion suivante (en gros tout ce que j'ai pu trouver à ce sujet):
https://lists.gt.net/python/dev/1129944
Est-ce que quelqu'un se souvient de la raison de ce comportement?
Je ne me souviens pas d'une meilleure justification que ce que j'ai écrit dans les docs : "String
les représentations des objets timedelta sont normalisées de la même manière que leur
représentation interne."
Je suppose qu'il serait préférable de modifier l'implémentation par défaut de python de la chaîne (au lieu de le faire de manière ad hoc pour chaque projet différent, y compris les pandas), mais comme ce ne sera pas le cas, je pense que c'est un bonne idée d'ajouter aux pandas, car la façon dont c'est très peu intuitif.
Je ne peux pas penser à un cas où quelqu'un le préférerait lorsqu'il s'agit de deltas de temps négatifs.
Commentaire le plus utile
Je dirais que cela en vaut vraiment la peine, car la représentation actuelle des nombres négatifs est vraiment très déroutante.
Mais à propos de la rupture de cohérence, je suppose que la représentation sous forme de chaîne pour les deltas de temps négatifs n'était pas censée avoir une quelconque convivialité à l'esprit. J'ai trouvé la discussion suivante (en gros tout ce que j'ai pu trouver à ce sujet):
https://lists.gt.net/python/dev/1129944
Je suppose qu'il serait préférable de modifier l'implémentation par défaut de python de la chaîne (au lieu de le faire de manière ad hoc pour chaque projet différent, y compris les pandas), mais comme ce ne sera pas le cas, je pense que c'est un bonne idée d'ajouter aux pandas, car la façon dont c'est très peu intuitif.
Je ne peux pas penser à un cas où quelqu'un le préférerait lorsqu'il s'agit de deltas de temps négatifs.