Python 2.7 蟒蛇2:大熊猫按组获取各组中NaN的比例

Python 2.7 蟒蛇2:大熊猫按组获取各组中NaN的比例,python-2.7,pandas,Python 2.7,Pandas,我有一个dataframe,其中有一个group列和一个values列: df = pd.DataFrame({'group': ['CA', 'WA', 'CO', 'AZ', 'MA'] * 10, 'value': pd.Series(range(5) + [np.nan]).sample(50, replace=True)}) 如何在组列上使用groupby获得值列中的NAN比例?应执行以下操作: df.groupby('group').apply

我有一个dataframe,其中有一个group列和一个values列:

df = pd.DataFrame({'group': ['CA', 'WA', 'CO', 'AZ', 'MA'] * 10,
                   'value': pd.Series(range(5) + [np.nan]).sample(50, replace=True)})

如何在组列上使用
groupby
获得值列中的NAN比例?

应执行以下操作:

df.groupby('group').apply(lambda x: x.value.isnull().sum()/len(x))
这里的关键是使用Series对象的
.isnull
方法来获取
NaN
的行,然后进行简单的比例计算以获得所需的输出

group
AZ    0.3
CA    0.1
CO    0.1
MA    0.1
WA    0.1
dtype: float6

我希望这会有帮助。

通过使用
大小
计数

g=df.groupby('group').value
i=g.count()
j=g.size()
(j-i).div(j,0)
Out[489]: 
group
AZ    0.3
CA    0.1
CO    0.0
MA    0.2
WA    0.2
Name: value, dtype: float64