You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas将多种格式的日期字符串转换为Datetime对象?

解决Pandas多格式日期字符串转Datetime对象的问题

你当前代码的核心问题是指定了固定的format='%Y-%m-%d'参数,这会强制Pandas仅按照该格式解析日期,导致其他合法但格式不同的日期字符串无法被识别,最终返回NaT。

要让多数有效日期字符串正常转换,只需移除format参数,让Pandas自动推断不同的日期格式,同时保留errors='coerce'来将无效值(比如Hello World)转为NaT。修改后的代码如下:

import pandas as pd

s = pd.Series(["14 Nov 2020", "14/11/2020", "2020/11/14", 
          "Hello World", "Nov 14th, 2020"])
result = pd.to_datetime(s, errors='coerce', yearfirst=True)
print(result)

执行后输出结果:

0   2020-11-14
1   2020-11-14
2   2020-11-14
3          NaT
4   2020-11-14
dtype: datetime64[ns]

关键说明

  • 移除format参数:Pandas内置的日期解析器支持自动识别多种常见格式(如带月份缩写、带序数词th、不同分隔符的日期)。
  • 保留yearfirst=True:对于14/11/2020这类日/月/年格式,该参数会优先将最后一位视为年份,避免解析错误。
  • errors='coerce':确保无效的非日期字符串被转为NaT,符合你的需求。

内容的提问来源于stack exchange,提问作者jdona13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:25:39