Pandas mit Pendulum arbeiten

8

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:

%Vor%

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 .

    
alecxe 16.12.2017, 19:42
quelle

1 Antwort

9
  

Was wäre die kanonische Methode, ein benutzerdefiniertes to_<something> zu erstellen?   Methode - in diesem Fall to_pendulum() Methode, die in der Lage wäre   Konvertieren Sie Reihen von Datumszeichenfolgen direkt in Pendulum 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 -

ist %Vor%

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.

%Vor%

Mit einigen Schwierigkeiten (mit dtype=object ) könnten Sie Pendulum -Objekte in Datenrahmen laden. Hier ist, wie Sie das tun würden -

%Vor%

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.

    
cᴏʟᴅsᴘᴇᴇᴅ 16.12.2017, 20:17
quelle

Tags und Links