将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可以。