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

Pandas删除名为'1'的列时触发KeyError问题求助

解决Pandas删除列时的KeyError问题(数字列名vs字符串列名)

问题本质

你的DataFrame列名是整数类型的1,但调用df.drop('1', axis=1)时传入的是字符串类型的'1',Pandas对列名的匹配严格区分类型,因此会提示['1']不在轴中。

更优解决方案

方案1:直接匹配整数列名

既然列名是整数,直接传入整数1即可:

df = df.drop(1, axis=1)
# 或用更清晰的columns参数(Pandas推荐写法)
df = df.drop(columns=1)

方案2:统一列名为字符串类型

如果后续需要频繁用字符串操作列名,可先将所有列名转为字符串,之后就能用字符串'1'直接删除:

# 将列名统一转为字符串
df.columns = df.columns.astype(str)
# 现在可以直接用字符串删除
df = df.drop('1', axis=1)
# 同样支持columns参数
df = df.drop(columns='1')

方案3:按列名类型精准筛选删除

若不确定列名类型,可先筛选出目标列再删除:

# 找到所有列名等于整数1的列
target_cols = [col for col in df.columns if col == 1]
df = df.drop(columns=target_cols)

现有方法的生效逻辑

你当前的方法之所以能成功,是因为通过转字符串找到索引后,最终传入drop()的是原始整数列名df.columns[column_index],本质还是匹配了正确的列名类型,只是步骤相对繁琐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:55:57