Ich bin kürzlich auf eine neue tolle pendulum
-Bibliothek gestoßen , die das Arbeiten mit Datumsangaben erleichtert.
In pandas
gibt es diese praktische Methode to_datetime()
Ermöglicht die Konvertierung von Serien und anderen Objekten in Datumsangaben:
Was wäre die kanonische Methode, um eine benutzerdefinierte to_<something>
-Methode zu erstellen?
in diesem Fall to_pendulum()
Methode, die in der Lage wäre, Reihen von Datumszeichenfolgen direkt in Pendulum
Objekte zu konvertieren?
Dies kann dazu führen, dass Series
verschiedene interessante Funktionen hat, wie zum Beispiel das Konvertieren einer Reihe von Datumszeichenfolgen in eine Folge von " Versätze von jetzt an "- menschliche datetime diffs .
Was wäre die kanonische Methode, ein benutzerdefiniertes
to_<something>
zu erstellen? Methode - in diesem Fallto_pendulum()
Methode, die in der Lage wäre Konvertieren Sie Reihen von Datumszeichenfolgen direkt inPendulum
objects?
Nachdem ich ein wenig durch die API geschaut habe, muss ich sagen, dass ich beeindruckt bin von dem, was sie getan haben. Leider glaube ich nicht, dass Pendulum
und pandas
zusammenarbeiten können (zumindest mit der aktuellsten Version - v0.21
).
Der wichtigste Grund dafür ist, dass pandas
Pendulum
nicht nativ als Datentyp unterstützt. Alle nativ unterstützten Datentypen ( np.int
, np.float
und np.datetime64
) unterstützen alle die Vektorisierung in irgendeiner Form. Sie werden keine Leistungsverbesserung mit einem Datenrahmen über, sagen wir, eine Vanille-Schleife und -Liste bekommen. Wenn überhaupt, wird der Aufruf von apply
für ein Series
mit Pendulum
-Objekten langsamer sein (wegen aller API-Overheads).
Ein weiterer Grund ist, dass Pendulum
eine Unterklasse von datetime
-
Dies ist wichtig, weil, wie oben erwähnt, datetime
ein unterstützter Datentyp ist, also werden Pandas versuchen datetime
auf das native Datetime-Format von Pandas zu erzwingen - Timestamp
. Hier ist ein Beispiel.
Mit einigen Schwierigkeiten (mit dtype=object
) könnten Sie Pendulum
-Objekte in Datenrahmen laden. Hier ist, wie Sie das tun würden -
Dies ist jedoch im Grunde nutzlos, weil das Aufrufen der Methode any pendulum
(über apply
) jetzt nicht nur sehr langsam ist, sondern auch dazu führt, dass das Ergebnis in% umgewandelt wird. co_de% wieder, eine Übung in der Sinnlosigkeit.