将 DataFrame 列类型从字符串转换为日期时间

新手上路,请多包涵

如何将字符串的 DataFrame 列(以 dd/mm/yyyy 格式)转换为日期时间?

原文由 perigee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 850
2 个回答

最简单的方法是使用 to_datetime

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

它还提供了欧洲时代的 dayfirst 论点(但请注意 这不是严格的)。

这是在行动:

 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]

原文由 Andy Hayden 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您的日期列是格式为“2017-01-01”的字符串,您可以使用 pandas astype 将其转换为日期时间。

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

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

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

产量

<class 'pandas._libs.tslib.Timestamp'>

与使用 pandas.to_datetime 时相同

您可以尝试使用其他格式然后 ‘%Y-%m-%d’ 但至少这有效。

原文由 sigurdb 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题