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

无法将Pandas DataFrame日期列转为datetime,报KeyError: 'date'错误

解决Pandas转换日期列时的KeyError: 'date'问题

从你给出的DataFrame输出和报错信息来看,问题的核心很明确:你的DataFrame里不存在名为'date'的列——虽然看起来列名是date,但大概率是列名前后带有空格(看你给出的示例第一行是 date value,date前面明显有个空格),导致Pandas找不到准确的列名。

下面是一步步的解决办法:

第一步:确认真实的列名

先运行这段代码查看DataFrame的所有列名,这样能直观看到列名的真实情况:

print(df.columns)

如果输出是类似Index([' date', 'value'], dtype='object'),那就坐实了列名有前导空格的问题。

第二步:清理列名并转换日期

最规范的做法是先清理所有列名的前后空格,再执行日期转换:

# 去除所有列名的前导/尾随空格
df.columns = df.columns.str.strip()
# 现在可以正常转换日期列了
df['date'] = pd.to_datetime(df['date'])

备选方案:直接使用带空格的列名

如果你不想修改所有列名,也可以直接指定带空格的列名完成转换,之后再重命名:

# 转换带空格的日期列
df['date'] = pd.to_datetime(df[' date'])
# 重命名列去掉空格
df.rename(columns={' date': 'date'}, inplace=True)

预防措施:读取数据时处理空格

如果你的数据是从CSV等文件读取的,可以在读取时直接设置参数避免这个问题:

df = pd.read_csv('your_file.csv', skipinitialspace=True)

这个参数会自动忽略列名和字段值开头的空格,从根源上避免这类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:31:07