2013-06-16 13 views

Antwort

214

Der einfachste Weg ist to_datetime zu verwenden:

df['col'] = pd.to_datetime(df['col']) 

Es bietet auch ein dayfirst Argument für europäische Zeiten (aber Vorsicht this isn't strict).

Hier ist es in Aktion:

In [11]: pd.to_datetime(pd.Series(['05/23/2005'])) 
Out[11]: 
0 2005-05-23 00:00:00 
dtype: datetime64[ns] 

Sie können einen Pass spezifischen format:

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y") 
Out[12]: 
0 2005-05-23 
dtype: datetime64[ns] 
+0

danke für deine Wiederholung, kann ich sein Format definieren? wie '% d /% m /% Y'? sehr geschätzt – perigee

+0

Nun, es behauptet, diese Option zu haben, aber ich denke, das wird ignoriert. : s –

+0

es funktioniert, funktioniert die Formatzeichenfolge, vielen Dank – perigee

6

Wenn Sie das Datum Spalte eine Zeichenfolge des Formats ist '2017.01.01' Sie kann pandas astype verwenden, um es in datetime zu konvertieren.

df['date'] = df['date'].astype('datetime64[ns]')

oder benutzen datetime64 [D], wenn Sie Tag Präzision wollen und nicht ns

print(type(df_launath['date'].iloc[0]))

Ausbeuten

<class 'pandas._libs.tslib.Timestamp'> das gleiche wie wenn Sie pandas.to_datetime verwenden

Sie können es mit anderen versuchen formatiert dann '% Y-% m-% d', aber zumindest funktioniert das.

Verwandte Themen