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

Pandas多级索引DataFrame执行drop删'1'列报KeyError该如何解决

多级列索引DataFrame删除指定层级列的解决方案

报错原因

直接向drop方法传入单层索引值时,pandas默认会匹配完整的多级列标签,不会单独匹配某一层的索引值,因此触发KeyError。

正确实现方式

方法1:通过drop方法的level参数指定匹配层级

pandas的drop方法支持level参数,可指定仅在对应层级匹配目标值。多级索引从最外层开始计数,第一层对应level=0,代码如下:

# 如果第一层索引值为字符串'1'用这个
g.drop('1', axis='columns', level=0, inplace=True)

# 如果第一层索引值为整数1则去掉引号,用这个
# g.drop(1, axis='columns', level=0, inplace=True)

方法2:手动筛选指定层级的列

如果需要更灵活的筛选逻辑,可先通过get_level_values取出对应层级的所有索引值做判断,再通过切片保留需要的列:

g = g.loc[:, g.columns.get_level_values(0) != '1']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:30:04