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

pd.to_datetime转换日期时单个单元格解析异常求助

问题描述

使用pd.to_datetime转换DataFrame的Date列时,原始日期格式为日/月/年,大部分单元格转换正确,但10/1/2022被错误转为2022-10-01(正确结果应为2022-01-10),其余单元格均能正常转为yyyy-mm-dd格式。

原始DataFrame示例:

Customer ID    Date
ABC123       10/1/2022
ABC223       30/12/2021
ABC456       21/6/2022
ABC876       30/3/2022

执行的转换代码:

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

转换结果:

Customer ID    Date
 ABC123     2022-10-01
 ABC223     2021-12-30
 ABC456     2022-06-21
 ABC876     2022-03-30
解决方案

问题根源是pd.to_datetime的自动推断逻辑:当日期中的日、月数值都在1-12范围内时,pandas会默认按月/日/年(美式格式)解析;而像30/12/2021这种日数值超过12的情况,会自动识别为日/月/年格式。

要强制统一按指定格式解析,直接在pd.to_datetime中添加format参数即可:

df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')

参数说明:

  • %d:代表两位数字的日(单数字日会自动补0,比如1号解析为01)
  • %m:代表两位数字的月
  • %Y:代表四位数字的年

执行上述代码后,10/1/2022会被正确转换为2022-01-10,其余日期也将保持正确的yyyy-mm-dd格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:54:30