pandas: extrahieren Sie Datum und Uhrzeit aus timestamp
Ich habe eine timestamp
Spalte, wo der Zeitstempel im folgenden format
2016-06-16T21:35:17.098+01:00
Möchte ich extrahieren Sie Datum und Zeit aus. Ich habe Folgendes getan:
import datetime as dt
df['timestamp'] = df['timestamp'].apply(lambda x : pd.to_datetime(str(x)))
df['dates'] = df['timestamp'].dt.date
Dieser arbeitete für eine Weile. Aber plötzlich geht es nicht.
Wenn ich wieder df['dates'] = df['timestamp'].dt.date
bekomme ich die folgende Fehlermeldung
Can only use .dt accessor with datetimelike values
Zum Glück habe ich die Daten gespeichert haben Rahmen mit dates
in der csv aber ich will jetzt erstellen Sie eine weitere Spalte time
im format 23:00:00.051
BEARBEITEN
Aus der raw-Datei (15 Millionen samples), die timestamp
Spalte sieht wie folgt aus (erste 5 Proben):
timestamp
0 2016-06-13T00:00:00.051+01:00
1 2016-06-13T00:00:00.718+01:00
2 2016-06-13T00:00:00.985+01:00
3 2016-06-13T00:00:02.431+01:00
4 2016-06-13T00:00:02.737+01:00
Nachdem Sie den folgenden Befehl
df['timestamp'] = df['timestamp'].apply(lambda x : pd.to_datetime(str(x)))
den timestamp
Spalte sieht aus wie mit dtype
als "dtype": datetime64[ns]
0 2016-06-12 23:00:00.051
1 2016-06-12 23:00:00.718
2 2016-06-12 23:00:00.985
3 2016-06-12 23:00:02.431
4 2016-06-12 23:00:02.737
Dann endlich
df['dates'] = df['timestamp'].dt.date
0 2016-06-12
1 2016-06-12
2 2016-06-12
3 2016-06-12
4 2016-06-12
EDIT 2
Den Fehler gefunden. Ich hatte gereinigt, die Daten gespeichert und die Daten-Frames in eine csv-Datei, so dass ich nicht haben, um die Reinigung wieder. Wenn ich lese die csv, die timestamp - dtype
änderungen zu widersprechen. Nun, wie kann ich dieses Problem beheben?
NaT
: df['timestamp'] = pd.to_datetime(df['timestamp'], errors='coerce')
dann können Sie loszuwerden, diese Werte mit dropna
und dann können Sie anrufen dt.date
wie vorherdf.timestamp.isnull().sum()
gibt 0 zurückSorry, aber es sei denn, Sie posten Sie Ihre raw-Daten-und code-Fehler, dann wird dies eine hypothetische Haltung übung, die unnötig Zeit
OT, statt
df['timestamp'].apply(lambda x : pd.to_datetime(str(x)))
betrachten pd.to_datetime(df['timestamp'])
.Um die Geschwindigkeit der Konvertierung, legen Sie das format für Ihren datetime strings --- siehe diese Frage.
InformationsquelleAutor chintan s | 2016-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
import datetime
wenn Datum in string-form dann
wenn das Objekt bereits in der Timestamp-format als überspringen der ersten Zeile code.
"%Y-%m-%d %H:%M" das bedeutet, dass die timestamp-Objekt muss in der form wie "2016-05-16 12:35:00".
InformationsquelleAutor Ajay Goyal
Zuerst tun:
Bevor Sie Ihre Extraktion, wie üblich:
InformationsquelleAutor Gursel Karacor