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

如何在Pandas中批量重命名指定列为同一名称?

解决Pandas批量将指定列重命名为同一名称的问题

这个问题我之前实操时也踩过坑!Pandas的列索引(Index对象)是不可变类型,所以直接通过切片赋值df.columns[1::3] = ['SomeName']会触发TypeError("Index does not support mutable operations"),下面给你几个实用的解决方案,不用手动逐个修改:

方法1:将列索引转为列表后修改(最直观)

先把不可变的Index转成可变的列表,修改目标位置的元素后再重新赋值给df.columns:

import pandas as pd
df = pd.read_csv('New.csv')

# 将列索引转为列表
cols = df.columns.tolist()
# 遍历从索引1开始的每第3列,修改列名
for i in range(1, len(cols), 3):
    cols[i] = 'SomeName'
# 重新赋值列索引
df.columns = cols

方法2:用df.rename()结合字典推导式(简洁优雅)

通过字典推导式生成「原列名→新列名」的映射,再传给rename()方法,适合需要明确映射关系的场景:

import pandas as pd
df = pd.read_csv('New.csv')

# 生成重名字典:目标列都映射到'SomeName'
rename_map = {col: 'SomeName' for col in df.columns[1::3]}
# 执行重命名(inplace=True可直接修改原DataFrame)
df.rename(columns=rename_map, inplace=True)

方法3:利用numpy数组修改(高效批量操作)

把列索引转为可变的numpy数组,直接切片赋值后再转回列索引:

import pandas as pd
df = pd.read_csv('New.csv')

# 转为numpy数组(可变类型)
cols_array = df.columns.to_numpy()
# 批量修改指定切片位置的列名
cols_array[1::3] = 'SomeName'
# 重新赋值列索引
df.columns = cols_array

小提示

  • 如果你的Pandas版本≥2.0,也可以用df.set_axis()配合列表推导式实现,但本质和方法1类似;
  • 注意:如果多个列重命名为同一名称,后续操作时通过列名取值会返回多列的DataFrame,而不是单一列,这一点要留意哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:14:48