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

Pandas设置DataFrame列名报错:AttributeError: can't set attribute 'columns'

解决Pandas DataFrame重命名列时的AttributeError问题

错误原因

出现AttributeError: can't set attribute 'columns',大概率是因为你操作的data不是一个独立的Pandas DataFrame副本,而是从其他DataFrame衍生出的视图(view),或是某些特殊子类对象(比如分组后的临时对象)。这类对象的columns属性被限制直接赋值修改。

解决方案

1. 转换为独立DataFrame副本后修改列名

先把data转换成真正的DataFrame副本,再直接赋值列名:

import pandas as pd

# 先转为独立DataFrame
data = pd.DataFrame(data)
# 赋值完整的100个列名列表
data.columns = ["ide_ads", "ide_any", "ide_sfdsdf", ...]

2. 使用rename方法修改列名

rename方法对视图类对象兼容性更好,两种写法可选:

  • 适配所有Pandas版本:用字典映射原列名和新列名
# 用zip把原列名和新列名配对成字典
new_columns = ["ide_ads", "ide_any", "ide_sfdsdf", ...]  # 完整列名列表
data = data.rename(columns=dict(zip(data.columns, new_columns)))
  • Pandas 1.3.0及以上版本:直接传入列名列表
data = data.rename(columns=["ide_ads", "ide_any", "ide_sfdsdf", ...])

3. 先确认对象类型

先打印data的类型,排除非DataFrame的情况:

print(type(data))

如果输出不是<class 'pandas.core.frame.DataFrame'>,比如是Series或GroupBy对象,需要先转换成DataFrame再操作。

内容的提问来源于stack exchange,提问作者Jose Maria Acevedo Reinoso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:18:10