Python 使用Pandas查找按特定列分组时空值的百分比
下面是我的数据帧的一个小快照:Python 使用Pandas查找按特定列分组时空值的百分比,python,pandas,Python,Pandas,下面是我的数据帧的一个小快照: 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
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值。
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的总和除以总数,即NaN
值的百分比
您也可以在编写时不使用for
循环:
dg.apply(pd.isnull).mean()
但是这种情况下,对于
bin
,也会返回一个值为零的行。您能提供一个简单/小的数据帧工作示例吗?如果垃圾箱本身有NaN
值怎么办?你是对的。很多容器都有空值。好的..提供了一个简化的数据帧,只有几个columns@optimus_prime马赫迪的回答回答了你的问题吗?如果有,请不要忘记接受,如果没有,请提供一个预期的输出。很抱歉我被抓住了。