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

Pandas处理日/月/年格式日期时to_datetime错误将日识别为月份问题

问题原因

pandas默认调用pd.to_datetime()时如果未指定日期格式,会自动尝试推断日期排列逻辑,优先按「月/日/年」规则解析,当日期的日部分数值小于等于12时,就会出现日月颠倒的误判,你遇到的12/06/2021被识别为2021年12月6日就是这个原因。

修复方案

两种可靠方案均可解决该问题:

  • 方案一:显式指定日期格式(最稳妥,无歧义)
    你的日期格式为日/月/年 时:分,对应格式串为%d/%m/%Y %H:%M,转换代码修改为:

    data['date'] = pd.to_datetime(data['date'], format='%d/%m/%Y %H:%M')
    

    该方案会强制pandas完全按照你给定的格式解析,不会出现自动推断的误判问题。

  • 方案二:开启日优先解析参数
    如果你不想写完整格式串,可以添加dayfirst=True参数,告知pandas日期段的第一个值为日:

    data['date'] = pd.to_datetime(data['date'], dayfirst=True)
    
验证效果

修改后重新解析12/06/2021 00:00会得到正确结果2021-06-12,所有日期的月份都会正确识别为6月,后续的groupby操作就可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:24:01