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

Pandas中isnull()返回布尔值列计算mean的运行机制疑问

问题解答

1. 布尔值的底层本质

  • Python 中布尔类型bool是整数类型int的子类,True等价于整数1,False等价于整数0,直接参与数值计算时会自动转换为对应的整数值。
  • Pandas的数值计算逻辑继承了这个特性,对布尔序列执行统计计算时,会自动把布尔值转为1和0再运算。

2. 布尔序列计算mean的逻辑

对布尔序列调用mean()方法时,计算规则为:

均值 = 序列中True的个数 / 序列总元素个数

拿你给出的示例数据举例:
调用df.isnull()得到布尔矩阵后,各列的mean()计算结果如下:

  • ID列:全为False,True的个数为0,均值为 0/3 = 0
  • Name列:全为False,均值为0
  • Phone列:有2个True,均值为 2/3 ≈ 0.6667

所以代码df.isnull().mean()==0的筛选逻辑就是:列中没有任何缺失值(True的个数为0,均值为0),和你写的df.notnull().all()的逻辑完全等价,运行结果自然一致。

3. 简单验证

你可以运行下面的代码直观验证这个特性:

import pandas as pd
# 构造布尔序列
s = pd.Series([True, False, True, False, False])
print(s.mean()) # 输出 0.4,对应2个True除以总长度5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:54:03