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

Pandas中pd.to_datetime转换时间字符串报错:如何修正format参数匹配'31/03/21 00'?

解决Pandas时间格式转换的ValueError问题

你碰到的这个错误,核心问题出在格式字符串的写法不符合Pandas遵循的strftime规范——你漏掉了格式符号的%前缀,而且两位年份的代码也用错了。

正确的格式写法

直接把格式参数改成下面这样就能成功转换:

df['time'] = pd.to_datetime(df['time'], format='%d/%m/%y %H')

为什么这个格式能生效?

我们拆解下每个格式代码的对应含义:

  • %d:匹配两位数字的日期(比如你示例里的31)
  • %m:匹配两位数字的月份(比如03)
  • %y:匹配两位数字的年份(比如21,Pandas会自动将其解析为2021)
  • %H:匹配24小时制的两位数字小时(比如00)

额外实用技巧

如果你的数据量不大,也可以让Pandas自动推断时间格式,省去手动写format的麻烦,不过这种方式在数据量较大时效率会稍低:

df['time'] = pd.to_datetime(df['time'], infer_datetime_format=True)

但更推荐手动指定format,尤其是当日期和月份的顺序容易混淆时(比如部分地区是月/日/年,而你的数据是日/月/年),手动指定能彻底避免解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:22:36