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

清理Excel数据时遇TypeError: 'bool'对象不可调用问题求助

解决dropna调用时的TypeError: 'bool' object is not callable问题

问题分析

你遇到的报错本质是**df_dry.dropna已经被覆盖成了布尔值(True/False)**,不再是pandas DataFrame的原生方法,所以调用时会提示布尔对象不可调用。这种情况通常是因为你之前的代码里不小心把dropna当成变量赋值了,比如写过类似df_dry.dropna = True的语句。

解决方案

1. 验证并修复方法覆盖问题

先执行以下代码检查dropna的类型:

print(type(df_dry.dropna))

如果输出是<class 'bool'>,说明确实被覆盖了。此时需要重新加载你的数据集(比如重新读取csv/excel文件),恢复dropna的原生方法。

2. 正确使用dropna删除缺失行

恢复原生方法后,执行以下代码即可删除Quantity或Rate列存在缺失值的行:

# 默认axis=0就是删除行,无需额外指定
df_dry_cleaned = df_dry.dropna(subset=['Quantity', 'Rate'])

或者显式指定axis也可以:

df_dry_cleaned = df_dry.dropna(subset=['Quantity', 'Rate'], axis=0)

注意:要将结果赋值给新变量(或覆盖原变量),否则不会修改原DataFrame。

3. 替代方案:用布尔索引筛选

如果暂时无法重新加载数据,也可以直接用布尔索引实现相同效果:

df_dry_cleaned = df_dry[df_dry['Quantity'].notna() & df_dry['Rate'].notna()]

这段代码会筛选出Quantity和Rate列都不为空的行,和dropna的效果完全一致。

关于你写的自定义函数

你定义的isFillled函数没有实际处理缺失值的逻辑,也没有和DataFrame的行筛选关联,所以无法解决问题,建议直接使用上述方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 18:52:05