Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Pandas查找按特定列分组时空值的百分比_Python_Pandas - Fatal编程技术网

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马赫迪的回答回答了你的问题吗?如果有,请不要忘记接受,如果没有,请提供一个预期的输出。很抱歉我被抓住了。