使用Python Pandas无法修改数据集第一列名称问题求助
解决DataFrame索引列名重命名失败的问题
问题场景
原始数据集:
Age Shoes Name Nike Dunks 23.000000 Nike Jordan 21.666667
执行重命名代码:
df4=df3.rename(columns = {'Shoes Name':'category_of_shoes','Age': 'avg_age_group'}) df4.head()
得到结果:
avg_age_group Shoes Name Nike Dunks 23.000000 Nike Jordan 21.666667
发现Age列成功改为avg_age_group,但Shoes Name未变更。
原因分析
Shoes Name不是普通数据列,而是DataFrame的行索引名称,rename(columns=...)方法仅作用于普通列,无法修改索引的名称。
解决方案
方法1:直接修改索引名称(推荐)
使用rename_axis()方法修改索引的名称,同时结合rename(columns=...)修改列名:
df4 = df3.rename_axis('category_of_shoes').rename(columns={'Age': 'avg_age_group'})
执行后结果:
avg_age_group category_of_shoes Nike Dunks 23.00 Nike Jordan 21.67
方法2:将索引转为普通列后重命名
先把索引转换为普通列,重命名后可选择重新设为索引:
# 把索引转为普通列 df3 = df3.reset_index() # 重命名所有目标列 df4 = df3.rename(columns={'Shoes Name':'category_of_shoes','Age': 'avg_age_group'}) # 可选:重新将category_of_shoes设为索引 df4 = df4.set_index('category_of_shoes')
内容的提问来源于stack exchange,提问作者Khalilomorph
相关产品推荐
相关产品推荐

