计算每组中的NaN数量

时间:2019-03-21 17:23:52

标签: python pandas

在此数据框中,我试图计算color列中每种颜色的NaN数。

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

   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 个答案:

答案 0 :(得分:4)

您可以使用DataFrame.isnaGroupBycolorsum来累加每个组中的所有True行:

df.value.isna().groupby(df.color).sum().reset_index()

    color  value
0    blue    1.0
1     red    3.0
2  yellow    0.0

答案 1 :(得分:1)

使用isna()。sum()

df.groupby('color').value.apply(lambda x: x.isna().sum())

color
blue      1
red       3
yellow    0

答案 2 :(得分:1)

还可以如下使用agg()和isull()或isna():

df.groupby('color').agg({'value': lambda x: x.isnull().sum()}).reset_index()

答案 3 :(得分:1)

sizecount中的用法

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