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

Pandas DataFrame复制索引列至新列报错问题及解决方法

解决将DataFrame索引复制为新列的KeyError问题

问题分析

你遇到的KeyError: 'date'是因为date列已经被设置为DataFrame的索引,不再属于普通列范畴,此时用列名date访问自然会找不到对应列。

重现错误的代码

import pandas as pd

# 构造示例数据
data = {'date': ['2024-01-01', '2024-01-02', '2024-01-03'],
        'value': [100, 200, 300]}
df1 = pd.DataFrame(data)

# 将date设为索引
df1.set_index('date', inplace=True)

# 错误的赋值方式
df1['date1'] = df1['date'].copy()

报错信息

KeyError: 'date'

两种可行的解决方法

方法1:直接通过.index赋值(推荐)

直接访问索引对象并赋值给新列,这是最简洁高效的方式:

df1['date1'] = df1.index

方法2:先恢复索引为列再复制

如果需要临时将索引转回列进行操作,之后可重新设置索引:

# 恢复索引为普通列
df1 = df1.reset_index()
# 复制date列到date1
df1['date1'] = df1['date'].copy()
# 重新将date设为索引(可选,根据需求决定)
df1.set_index('date', inplace=True)

最终期望结果

执行上述任一方法后,DataFrame会新增date1列,值与索引完全一致:

value       date1
date                         
2024-01-01    100  2024-01-01
2024-01-02    200  2024-01-02
2024-01-03    300  2024-01-03

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:40:34