Ich habe dieses Format als Objekt 2020-11-18 10: 36: 29.772234 +0000 UTC, möchte in Datum Uhrzeit konvertieren
2020-11-20 23:07:59.381081 +0000 UTC
Ich lese eine CSV-Datei mit Pandas und in einem Datenrahmen befindet sich eine Zeitstempelspalte, die ein Objekt ist. Ich konnte weder in datetime konvertieren noch die +0000 UTC in das Format lesen
Ich habe folgendes versucht:
datetimeObj = datetime.strptime('2020-11-21 22:16:25.389601 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %Z')
aber das% Z gibt mir Fehler. Irgendwelche Ratschläge für einen Anfänger in der Python & Pandas Welt?
Antworten
Sie müssen auch% z vor% Z hinzufügen.
- % z bezieht sich auf den Versatz in der Form + HHMM oder -HHMM.
- % Z bezieht sich auf den Namen der Zeitzone.
Versuche dies:
datetime_object = datetime.strptime('2020-11-20 23:07:59.381081 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %z %Z')
Angenommen, Sie haben Datums- / Uhrzeitzeichenfolgen in diesem Format in einem Pandas-DataFrame. Ich würde vorschlagen, das zu entfernen, +0000
da pd.to_datetime
es nicht analysiert wird +0000
und UTC
gleichzeitig .
import pandas as pd
df = pd.DataFrame({'timestamp':["2020-11-20 23:07:59.381081 +0000 UTC"]})
df['datetime'] = pd.to_datetime(df['timestamp'].str.replace(" +0000", "", regex=False))
# df['datetime']
# 0 2020-11-20 23:07:59.381081+00:00
# Name: datetime, dtype: datetime64[ns, UTC]
Warum nicht einfach das ausziehen UTC
? Im Gegensatz zu einem UTC-Offset von +0000 ist dies eindeutig. +0000 kann auch aus einer Zeitzone stammen, in der zum Zeitpunkt des Zeitstempels zufällig UTC + 0 vorhanden ist.