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

Pandas执行drop按列删除时报KeyError:['lead_snp']不存在于轴上问题求助

错误原因

  • 调用groupby("lead_snp")时,Pandas默认会将分组字段lead_snp设为结果的行索引,不再作为普通列保留在DataFrame的列集合中
  • 执行nunique()后得到的结果仅包含各个Set_*统计列,不存在名为lead_snp的列,因此执行drop("lead_snp", axis=1)时触发KeyError

解决方案

根据使用场景可任选以下方案:

  • 方案1:分组时指定as_index=False,让lead_snp保留为普通列后再执行删除操作
    示例代码:
    lead_chrom_only_df.groupby("lead_snp", as_index=False).nunique().drop("lead_snp", axis=1)
    
  • 方案2:直接指定分组后仅对数值列统计唯一值,不需要额外删除操作
    示例代码:
    # 取除了lead_snp之外的所有列做nunique统计
    lead_chrom_only_df.groupby("lead_snp")[lead_chrom_only_df.columns.drop('lead_snp')].nunique()
    
  • 方案3:如果不需要保留lead_snp的取值,直接对统计结果重置索引即可
    示例代码:
    lead_chrom_only_df.groupby("lead_snp").nunique().reset_index(drop=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:06:03