将DataFrame列types从string转换为datetime

如何将DataFramestring列(以dd / mm / yyyy格式)转换为date时间?

最简单的方法是使用to_datetime

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

它也提供了欧洲时代的第一个论点(但要注意这一点不严格 )。

这是在行动:

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

你可以传递一个特定的格式 :

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

如果date列是格式为“2017-01-01”的string,则可以使用pandas astype将其转换为datetime。

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

或者使用datetime64 [D]如果你想日精度,而不是纳秒

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

产量

<class 'pandas._libs.tslib.Timestamp'>与使用pandas.to_datetime时相同

你可以用其他格式尝试,然后'%Y-%m-%d',但至less可以。