Python 2.7 蟒蛇2:大熊猫按组获取各组中NaN的比例
我有一个dataframe,其中有一个group列和一个values列: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
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