Ich kann das richtige Format für diese Datums- / Uhrzeitangabe nicht finden. Ich habe verschiedene Formate ausprobiert. %Y/%m/%d%I:%M:%S%p ist das nächstgelegene Format, das ich für das folgende Beispiel finden kann.

df['datetime'] = '2019-11-13 16:28:05.779'

df['datetime'] = pd.to_datetime(df['datetime'], format="%Y/%m/%d%I:%M:%S%p")

Ergebnis:

ValueError: time data '2019-11-13 16:28:05.779' does not match format '%Y/%m/%d%I:%M:%S%p' (match)
1
Starbucks 7 Feb. 2020 im 21:57

3 Antworten

Beste Antwort

Bevor Sie sich selbst erraten, lassen Sie Pandas die erste Vermutung anstellen

df['datetime'] = pd.to_datetime(df['datetime'], infer_datetime_format=True)
0   2019-11-13 16:28:05.779
Name: datetime, dtype: datetime64[ns]
4
Kenan 7 Feb. 2020 im 18:59

Hier ist der Aufruf pandas.to_datetime() mit der richtigen Formatzeichenfolge: pd.to_datetime(df['datetime'], format="%Y/%m/%d %H:%M:%S")

Sie haben ein Leerzeichen verpasst, %I ist für 12 Stunden (die Beispielzeit, die Sie angegeben haben, ist 16:28, und %p ist, um die Dokumente zu zitieren, das Äquivalent des Gebietsschemas von entweder AM oder PM.

-1
AMC 8 Feb. 2020 im 03:32

Sie können dies wahrscheinlich mit dem Parameter infer_datetime_format=True lösen. Hier ist ein Beispiel:

df = {}
df['datetime'] = '2019-11-13 16:28:05.779'
df['datetime'] = pd.to_datetime(df['datetime'], infer_datetime_format=True)
print(df['datetime'])
print(type(df['datetime'])

Ausgabe:

2019-11-13 16:28:05.779000
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
4
Celius Stingher 7 Feb. 2020 im 18:59