在此数据框中,我试图计算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
答案 0 :(得分:4)
您可以使用DataFrame.isna
,GroupBy
列color
和sum
来累加每个组中的所有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)
size
和count
中的用法
g=df.groupby('color')['value']
g.size()-g.count()
Out[115]:
color
blue 1
red 3
yellow 0
Name: value, dtype: int64