如何按Pandas DataFrame的name列取值统计每行缺失值总和?
按name列分组统计空值总和的解决方案
你可以用Pandas的分组聚合功能来实现,比循环高效得多,步骤如下:
- 先给数据集新增一列,存储每行的空值数量
- 按
name列分组,对新增的空值数列求和
具体代码如下:
# 计算每行的空值数量,新增为null_count列 requiredCSV['null_count'] = requiredCSV.isnull().sum(axis=1) # 按name列分组,统计每组的空值总和 name_null_total = requiredCSV.groupby('name')['null_count'].sum() # 打印结果 print(name_null_total)
如果不需要保留新增的null_count列,也可以用一行代码完成:
name_null_total = requiredCSV.groupby('name').apply(lambda x: x.isnull().sum().sum()) print(name_null_total)
代码说明
isnull().sum(axis=1):axis=1表示按行统计空值数量,默认axis=0是按列统计groupby('name')['null_count'].sum():按name分组后,对每组的空值数求和,直接得到每个name对应的总空值数- 第二种方法里的
apply(lambda x: x.isnull().sum().sum()):先对组内每行统计空值(第一个sum),再把组内的行空值数加总(第二个sum)
内容的提问来源于stack exchange,提问作者Cosmo Boy
相关产品推荐
相关产品推荐

