2017-04-13 60 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,以及。