2013-06-16 1 views

Odpowiedz

214

Najprostszym sposobem jest użycie to_datetime:

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

Oferuje również dayfirst argument za czasów europejskich (ale uwaga this isn't strict).

Oto ona w akcji:

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

można przekazać specyficzny 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

dzięki za powtórkę, czy mogę zdefiniować jej format? jak "% d /% m /% Y"? bardzo doceniane – perigee

+0

Cóż, twierdzi, że ma tę opcję, ale myślę, że jest to ignorowane. : s –

+0

to działa, łańcuch formatu działa, dziękuję bardzo – perigee

6

Jeśli data kolumna jest ciąg formatu '2017-01-01' ty może użyć pandas astype, aby przekonwertować go na datetime.

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

lub użyj datetime64 [D], jeśli chcesz Day precyzyjne i nie nanosekund

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

plony

<class 'pandas._libs.tslib.Timestamp'> taka sama, jak w przypadku korzystania pandas.to_datetime

Możesz spróbować z innymi formatuje następnie "% Y-% m-% d", ale przynajmniej to działa.