484 Stimmen

Konvertiere Pandas-Spalte in Datum und Uhrzeit

Ich habe ein Feld in einem Pandas DataFrame, das im String-Format importiert wurde.

Es sollte eine Datumszeitvariable sein. Wie konvertiere ich sie in eine Datumszeitspalte und filtere dann nach Datum?

Beispiel:

raw_data = pd.DataFrame({'Mycol': ['05SEP2014:00:00:00.000']})

824voto

chrisb Punkte 50951

Verwenden Sie die to_datetime Funktion und geben Sie ein Format an, das zu Ihren Daten passt.

df['Mycol'] = pd.to_datetime(df['Mycol'], format='%d%b%Y:%H:%M:%S.%f')

113voto

Vlad Bezden Punkte 71128

Wenn Sie mehr als eine Spalte konvertieren möchten, können Sie Folgendes tun:

df[["col1", "col2", "col3"]] = df[["col1", "col2", "col3"]].apply(pd.to_datetime)

71voto

mechanical_meat Punkte 154171

Bearbeitung: Es wird empfohlen, stattdessen pd.to_datetime() zu verwenden, da .apply() im Allgemeinen langsamer ist.

Sie können die DataFrame-Methode .apply() verwenden, um auf die Werte in Mycol zu wirken:

>>> df = pd.DataFrame(['05SEP2014:00:00:00.000'], columns=['Mycol'])
>>> df
                    Mycol
0  05SEP2014:00:00:00.000
>>> import datetime as dt
>>> df['Mycol'] = df['Mycol'].apply(lambda x: 
...     dt.datetime.strptime(x, '%d%b%Y:%H:%M:%S.%f'))
>>> df
       Mycol
0 2014-09-05

48voto

Prateek Sharma Punkte 1151

Verwenden Sie die pandas to_datetime-Funktion, um die Spalte als DateTime zu analysieren. Durch Verwendung von infer_datetime_format=True wird das Format automatisch erkannt und die genannte Spalte in DateTime konvertiert.

import pandas as pd
raw_data['Mycol'] = pd.to_datetime(raw_data['Mycol'], infer_datetime_format=True)

17voto

Gil Baggio Punkte 10839

Zeitersparnis:

raw_data['Mycol'] = pd.to_datetime(raw_data['Mycol'])

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X