2017-04-13 53 views
2

下面特定列编组找出空值的百分比是我的数据框的一小快照:若用熊猫

avg_rating_of_driver avg_rating_by_driver bins 
0 4.7 5.0 (3, 125] 
1 5.0 5.0 NaN 
2 4.3 5.0 (2, 3] 
3 4.6 4.9 (3, 125] 
4 4.4 4.9 (3, 125] 
5 3.5 5.0 (1, 2] 
6 NaN 4.0 (0, 1] 
7 5.0 5.0 (1, 2] 
8 4.5 5.0 (1, 2] 
9 NaN 5.0 (0, 1] 
10 5.0 4.9 (0, 1] 
11 4.0 5.0 (2, 3] 
12 NaN 5.0 (0, 1] 
13 4.0 5.0 NaN 
14 NaN 5.0 (0, 1] 
15 NaN 5.0 (0, 1] 
16 5.0 3.0 (0, 1] 
17 3.9 4.8 NaN 
18 4.6 4.8 (3, 125] 
19 5.0 5.0 NaN 
20 NaN 3.0 (0, 1] 
21 NaN 5.0 (0, 1] 
22 NaN 5.0 NaN 
23 5.0 5.0 NaN 
24 4.5 4.7 (3, 125] 
25 NaN 5.0 (0, 1] 

的信息仓具有以下值:

(0,1] (1,2] (2,3] (3,125] 

我感兴趣按分箱分组并找出%的空值在每个分箱中。

这意味着当分组许多%的栏目怎么有NA该行值

+0

您能否提供一个简单/小型的数据框示例?如果垃圾箱本身具有“NaN”值? – Mahdi

+0

你说得对。许多垃圾箱都有空值。 –

+0

好的......提供一个只有几列的简化数据框 –

回答

2

怎么是这样的:

dg = df.groupby('bins') 
for col in df.columns: 
    if col!='bins': 
     print (dg[col].apply(pd.isnull).mean()) 

由于dg[col].apply(pd.isnull)是1和0' 的数组,其平均值等于全1的总人数devided的总和,a.k.a NaN值的百分比!

您也可以在不for循环写:

dg.apply(pd.isnull).mean() 

,但这种情况下返回一行与零值进行bins,以及。