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

Pandas中将MMDDYYYY格式日期列转为YYYY-MM-DD格式报错如何解决

报错根因

日期解析的格式参数和实际数据的字段顺序不匹配:

  • 目标列存储的是MMDDYYYY结构:前2位是月份、中间2位是日期、最后4位是年份(例如10011933对应1933年10月1日)
  • 原代码中format='%Y%m%d'指定的解析顺序是「4位年份+2位月份+2位日期」,和实际数据顺序完全颠倒,解析时无法匹配剩余字符,就会触发ValueError: unconverted data remains报错。
修正代码

将格式参数调整为匹配MMDDYYYY顺序的%m%d%Y即可,pandas的datetime类型默认展示格式就是YYYY-MM-DD,无需额外做字符串拼接处理:

df['date'] = pd.to_datetime(df['date'], format='%m%d%Y')
转换效果验证

使用给出的样例数据做测试:

# 构造测试数据集
test_df = pd.DataFrame({
    'date': ['10011933', '04041961', '07061931', '10281988']
})
# 执行转换
test_df['date'] = pd.to_datetime(test_df['date'], format='%m%d%Y')
print(test_df)

运行输出:

date
0 1933-10-01
1 1961-04-04
2 1931-07-06
3 1988-10-28

完全符合预期转换要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:54:27