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

如何基于指定位置重命名DataFrame中的重复列

解决Pandas按位置重命名重复列的问题

问题根源

rename()方法是按列名字典映射实现重命名的——哪怕你通过df.columns[position]获取列名,本质还是传入了列名字符串,所有同名的列都会被匹配并重命名,这就是重复列被一起修改的核心原因。

通用解决方案

直接操作DataFrame的列名列表,修改指定位置的元素即可,完全不受重复列名干扰:

实现步骤

  1. 将列名转换为可修改的列表
  2. 根据配置文件指定的位置,替换列表中对应索引的列名
  3. 将修改后的列表重新赋值给DataFrame的列名

示例代码

假设从配置文件中读取到position = 0,新列名new_header = 'statename':

# 获取列名列表
cols = df.columns.tolist()
# 修改指定位置的列名
cols[position] = new_header
# 重新赋值列名
df.columns = cols

效果验证

原列名:state city country state
修改后列名:statename city country state
仅位置0的列被重命名,另一列state保持不变,完全符合需求。

方案通用性说明

  • 无需关注重复列的具体名称,仅依赖配置文件指定的位置和新列名
  • 适配任意数量、任意名称的重复列场景
  • 操作直接,规避了rename()方法的匹配歧义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:50:36