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

如何在Pandas DataFrame存在重名列时重命名或删除指定列

Pandas 处理重复列名:指定列重命名与删除方法

一、重命名指定的重复列

当DataFrame存在重复列名时,直接调用df.rename(columns={'old_name':'new_name'})会批量修改所有同名列。如果只想修改其中某一个指定的重复列,可以通过列的位置索引来精准操作:

操作示例

  1. 先创建带重复列的测试DataFrame:
import pandas as pd
df = pd.DataFrame([[1,2,3], [4,5,6]], columns=['data', 'data', 'data'])
  1. 将列名转为可修改的列表,修改指定位置后重新赋值:
col_names = df.columns.tolist()
# 修改第2个(索引为1)"data"列名为"data_processed"
col_names[1] = 'data_processed'
df.columns = col_names
  1. 也可以直接通过列索引值修改(更简洁):
# 修改第3个(索引为2)"data"列名为"data_final"
df.columns.values[2] = 'data_final'

二、删除指定的重复列

直接用df.drop('old_name', axis=1)会删除所有同名列。要删除指定的某一个重复列,同样需要通过列位置索引来操作:

操作示例

  1. 用列索引直接删除目标列:
# 删除第2个(索引为1)"data"列
df = df.drop(df.columns[1], axis=1)
  1. 先定位所有同名列的位置,再选择删除:
# 获取所有名为"data"的列的索引
target_indices = [idx for idx, name in enumerate(df.columns) if name == 'data']
# 删除第1个(索引为0)同名列
df = df.drop(df.columns[target_indices[0]], axis=1)
  1. 用iloc选择保留的列(间接删除目标列):
# 保留除第3个(索引为2)列之外的所有列
df = df.iloc[:, [0,1]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:02:06