2016-07-01 11 views
0

Ich fand, dass wir Datetime-Spalten in einem Pandas Datenrahmen, indem Sie diese erstellen:DatetimeIndex Mit Pandas Erstellung von Datetime-Spalte (n) in einem Datenrahmen zu erleichtern

>>> dt1 = pandas.DatetimeIndex(["2016-03-04 15:01:49", 
           "2016-03-05 23:54:22", 
           "2016-04-03 21:22:08", 
           "2016-04-03 21:22:08", 
           "2016-03-05 23:54:22"]) 
>>> df1 = pandas.DataFrame([["firefly", 37], 
          ["wood", 47], 
          ["snowflake", 12], 
          ["waterfall", 67], 
          ["wind", 208]], 
          columns = ["what", "count"]) 
>>> df1['when_last'] = dt1 
df1 
     what count   when_last 
0 firefly  37 2016-03-04 15:01:49 
1  wood  47 2016-03-05 23:54:22 
2 snowflake  12 2016-04-03 21:22:08 
3 waterfall  67 2016-04-03 21:22:08 
4  wind 208 2016-03-05 23:54:22 

meine Frage ist: Ist das ein legales Konstrukt? Teil meiner Verwirrung ist das: ist DatetimeIndex soll in der Lage sein, doppelte Daten und ungeordnete Daten zu empfangen, , wenn wir machen das nicht ein Index?

Dies ist mein Anwendungsfall, der das Experiment ausfällt oben: ich eine Tabelle, die ich möchte mit Pandas verarbeiten, die viele (aber nicht zu viele) Felder, über 40er Jahre von ihnen hat. Die Tabelle selbst enthält Zehntausende von Datensätzen oder mehr. Das ursprüngliche Format dieser Tabelle ist CSV-Text. Die Verarbeitung wird im Wesentlichen entlang der Linie von SQL-like Analytics (Filter, Join, Sortieren, usw.), für die Pandas anständige Fähigkeiten haben. Unter diesen Feldern befinden sich mehrere Datum-Uhrzeit-Felder (gespeichert als UNIX Zeitstempel in der CSV-Datei), drei oder vier davon. Keine davon kann als Index für die Datenframezeilen verwendet werden. Sie sind Daten im Zusammenhang mit mehreren Ereignissen, die zu einem Datensatz gehören, und sie können Duplikate haben, da Ereignisse mit genau die gleichen Datum-Uhrzeit-Werte gestempelt werden können.

Mehrere Stackoverflow Benutzer haben vorgeschlagen, dass eigentlich ziemlich schlecht ist (und vielleicht Leistung ist auch mittelmäßig) Datum-Zeit mit read_csv mit date_parser Argumente direkt Parsen, wenn wir das Datum one-by-one, wie this one analysieren. Da die rohen Spalten einfach UNIX-Zeitstempel enthalten, sollten wir in der Lage sein, eine hohe Leistung zu erzielen. Das andere Problem ist, dass to_datetime Zeitzone nicht unterstützt, um die UNIX-Zeitstempel zuzuschreiben. Das obige Beispiel hat keine Zeitzone, aber ich möchte es in meinen realen Fall aufnehmen.

+0

Was ist Programmierfrage hier? – Merlin

+0

Siehe den ersten Absatz nach dem Code-Snippet. –

Antwort

0

Ist das ein rechtliches Konstrukt?

ja.

+1

Ich frage mich, wer gibt die -1-Score auf diese Antwort. Wenn Sie (der Geber) nicht einverstanden sind, machen Sie bitte eine andere Antwort, um diese Antwort zu widerlegen. –

Verwandte Themen