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

使用drop方法按列索引删重复列时误删首列的问题排查

解决方法:避免硬编码列索引,用列名去重保留首个ENZYME列

你遇到的问题核心是硬编码列索引容易数错——Pandas的列索引从0开始计数,你可能误判了重复ENZYME列的位置,导致意外删除了首列。

直接通过列名去重的方式更可靠,能自动保留每个列名第一次出现的实例,删除后续重复项:

# 保留每个列名首次出现的列,删除重复列
df_CL_HHA_2 = df_CL_HHA.loc[:, ~df_CL_HHA.columns.duplicated()]

如果需要更直观的分步写法,也可以这样:

# 遍历列名,记录已出现的列,只保留首次出现的
seen_columns = set()
keep_columns = []
for col in df_CL_HHA.columns:
    if col not in seen_columns:
        seen_columns.add(col)
        keep_columns.append(col)
df_CL_HHA_2 = df_CL_HHA[keep_columns]

为什么你的原代码会出错?

假设你的原始DataFrame列顺序是:ENZYME, 列1, ENZYME, 列2, ENZYME, 列3, ENZYME,对应的索引是0到6。你删除索引2、4、6的列,理论上应该保留索引0的ENZYME列。但实际首列被删除,大概率是你数错了列的索引位置——比如你把列按1开始计数,误将首列的索引0当成了其他值,或者原始DataFrame的列索引并非连续的(比如之前有过列删除操作导致索引断层),导致drop的索引意外包含了首列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:37:08