每个组中NaN的数量统计

5

在这个数据框中,我试图计算每个颜色在 color 列中有多少个 NaN。

这是示例数据的样子。实际上,有 100k 行。

   color     value  
0  blue      10 
1  blue      NaN  
2  red       NaN
3  red       NaN
4  red       8
5  red       NaN
6  yellow    2

我希望输出的结果如下所示:

格式需要保持不变:

   color     count  
0  blue      1 
1  red       3
2  yellow    0
4个回答

7
你可以使用 DataFrame.isnaGroupBy 和列 colorsum 来累加每个组中所有 True 行的数量:
df.value.isna().groupby(df.color).sum().reset_index()

    color  value
0    blue    1.0
1     red    3.0
2  yellow    0.0

2
使用 isna().sum()。
df.groupby('color').value.apply(lambda x: x.isna().sum())

color
blue      1
red       3
yellow    0

2
你可以使用agg()、isnull()或isna()来实现以下功能:最初的回答。
df.groupby('color').agg({'value': lambda x: x.isnull().sum()}).reset_index()

1

sizecount 的用法

g=df.groupby('color')['value']
g.size()-g.count()
Out[115]: 
color
blue      1
red       3
yellow    0
Name: value, dtype: int64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接