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

pandas删除uint8类型哑变量报['False'] not found in axis错误

报错根因

两个写法错误直接触发报错:

  • 列名类型错配:pd.get_dummies()生成的二分类哑变量列名是布尔值True/False,不是字符串类型的'True'/'False'。你之前重命名时传的键是字符串"True",完全匹配不到布尔类型的列名,重命名操作根本没生效,后续传字符串'False'删列自然找不到目标列。
  • inplace参数用法错误:所有设置inplace=True的pandas方法都是直接修改原数据、返回None,你写data2 = data2.drop(['False'], axis=1, inplace=True)会把data2赋值为空值None,就算列名写对了,后续操作data2也会触发属性错误。
修正方案

你可以直接用get_dummies的原生参数简化流程,不需要手动拼接再删原列:

# 一步完成哑变量生成、合并原表、删除原分类列
data2 = pd.get_dummies(data, columns=['High_or_Low_Balance'])
# 重命名时注意键是布尔值,不要加引号
data2.rename(columns={True: "High_Bank_Balance", False: "Low_Bank_Balance"}, inplace=True)
# 删除低余额对应列时传布尔值False,不要加引号,inplace操作不要赋值给变量
data2.drop([False], axis=1, inplace=True)

如果要保留你原来的分步写法,修正后代码如下:

dummy = pd.get_dummies(data['High_or_Low_Balance'])
data2 = pd.concat((data, dummy), axis=1)
data2 = data2.drop(['High_or_Low_Balance'], axis=1)
# 修正rename的键类型为布尔值
data2.rename(columns={True:"High_Bank_Balance"}, inplace=True)
# 修正drop的列名类型,去掉赋值
data2.drop([False], axis=1, inplace=True)
排查验证

如果不确定列名类型,可以在生成哑变量后运行下面的代码确认:

print(dummy.columns)
print(dummy.columns.dtype)

输出会显示列类型为bool,自然匹配不到你传入的字符串类型列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:03:22