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

使用pd.to_datetime转换混合格式日期出现日月颠倒问题如何解决

问题原因

pandas默认解析仅含日期的斜杠分隔字符串时,优先采用月/日/年的规则,而带时分秒后缀的日期字符串会默认优先按日在前的规则解析,就导致了两类数据转换逻辑不一致的问题。

解决方法

方法1:指定dayfirst参数(最简便,兼容两种格式)

直接在转换时添加dayfirst=True参数,强制把斜杠分隔的第一个数值识别为日、第二个识别为月,两种格式都可以正常解析:

df['COLUMN'] = pd.to_datetime(df['COLUMN'], dayfirst=True)

方法2:显式指定格式(更严谨,避免极端场景识别错误)

如果你的pandas版本≥2.0,可以用format='mixed'配合dayfirst参数,会自动匹配两种格式:

df['COLUMN'] = pd.to_datetime(df['COLUMN'], format='mixed', dayfirst=True, errors='coerce')

参数errors='coerce'会把无法转换的异常值置为空,方便后续单独排查处理。

校验转换结果

转换完成后可以用下面的代码快速验证是否存在日月颠倒的错误(正常月份不可能大于12,有输出的话就是存在识别错误的行):

print(df[df['COLUMN'].dt.month > 12])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 15:36:04