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

如何统计Pandas DataFrame多列相同位置共同缺失(NaN)的总数量

解决方案

你可以将待统计的列名整理为一个列表,直接通过Pandas内置的逐行聚合方法实现需求,无需手动循环拼接逻辑运算符:

# 先定义需要统计的目标列列表,可根据实际需求动态修改
target_cols = ['HomeRemote', 'CompanySize'] # 可替换为任意长度的列名列表

# 统计所有目标列全为缺失值的行数
all_null_count = df[target_cols].isnull().all(axis=1).sum()

代码逻辑说明

  • df[target_cols]:筛选出所有需要参与判断的目标列
  • .isnull():将选中的所有值转换为布尔矩阵,缺失值对应True,非缺失值对应False
  • .all(axis=1):按行做聚合判断,只有当前行所有列的布尔值都为True(即所有目标列全为缺失值)时,才返回True
  • .sum():统计返回的布尔序列中True的总数量,即为符合要求的总行数

如果你希望沿用之前批量拼接逻辑与的思路,也可以通过reduce方法实现:

from functools import reduce
import operator

target_cols = ['HomeRemote', 'CompanySize']
all_null_count = reduce(operator.and_, (df[col].isnull() for col in target_cols)).sum()

两种方法效果完全一致,第一种写法更简洁易读,对于5万行20列的规模性能没有任何问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:06:01