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

如何使用Python处理同列不同格式日期避免to_datetime识别错误

问题根源

pd.to_datetime()未手动指定解析规则时,会根据日期字符串的分隔符自动套用不同的默认解析逻辑:

  • 以-为分隔符的日期,默认优先按「年-月-日」顺序解析
  • 以/为分隔符的日期,默认优先按「月/日/年」顺序解析
    你的数据实际是「日在前、月在中、年在后」的结构,自动解析必然会出现日月错位、月份识别错误的问题。
正确操作步骤

不需要写多套格式分别匹配,两步即可完成全量数据的正确解析:

  • 第一步:统一分隔符,消除两种书写格式的基础差异
# 将列内所有/替换为-,统一两种格式的分隔符
df['Date'] = df['Date'].str.replace('/', '-', regex=False)
  • 第二步:明确指定解析规则,强制按「日-月-年」顺序解析
# dayfirst=True告知解析器日期段第一位为日、第二位为月,自动兼容一位/两位数字的月、日,以及不同长度的时间格式
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True, errors='coerce')

验证提示:解析完成后可执行df['Date'].dt.month.value_counts().sort_index(),如果输出的月份值全部在1-12区间内,说明无解析错位问题。
该方法会自动兼容你提到的两种格式差异:不管月、日是否带前导零,时间部分是00:00:00格式还是0:00格式,都能被正确识别,不会出现解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:01:00