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

Python Pandas中notnull()与~notnull()/isnull()结果不互斥问题咨询

原因解析

核心原因是 pandas的count()方法本身会自动跳过NaN、NaT等所有空值,仅统计列中非空值的数量,和你用的筛选条件是否正确无关:

  1. 当你筛选出Last order列非空的行后调用count(),统计的是这些行里非空值的数量,自然和筛选出的行数一致,得到16522
  2. 当你筛选出Last order列为空的行后调用count(),这些行的Last order值全是空值,count()会全部忽略,所以结果永远是0,并不是notnull()和isnull()/isna()的判断结果不互斥。

正确统计空值数量的方法

你可以用以下任意一种方式得到预期的2791结果:

  • 直接对布尔掩码求和,统计空值匹配的行数:
maintenance_items['Last order'].isnull().sum()
  • 筛选空值行后用shape统计总匹配行数,不会自动过滤空值:
maintenance_items[maintenance_items['Last order'].isnull()].shape[0]
  • 用value_counts查看完整值分布,包含空值:
maintenance_items['Last order'].value_counts(dropna=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:48:02