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

pandas转换YYYYMMDD格式日期为datetime报KeyError: 'DATE'如何解决

报错核心原因
  • reset_index()方法默认返回新数据框,不会修改原df,执行完后DATE仍然是原df的索引,不属于普通列,因此无法通过df['DATE']读取到数据,触发KeyError。
可选修复方案

方案1:直接修改原数据框结构(需要保留DATE为普通列时用)

给reset_index添加inplace=True参数,直接修改原df的结构:

df.reset_index(inplace=True)
df['DATE'] = pd.to_datetime(df['DATE'], format='%Y%m%d')
# 后续如果需要把DATE重新设为索引可以补充:df.set_index('DATE', inplace=True)

方案2:接收重置索引后的新数据框

将reset_index()的返回值赋值给df,覆盖原数据框:

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

方案3:无需重置索引,直接转换索引类型(更高效)

如果后续仍需要DATE作为索引,不需要把它转为普通列,直接修改索引的类型即可:

df.index = pd.to_datetime(df.index, format='%Y%m%d')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:57:00