首页 > 解决方案 > 按百分比计算 Python Pandas 组

问题描述

我想找出特定组(按 2 列分组)的出现百分比以及单列分组的出现次数。如下所示,我想计算 group by(Cardno,Sitedesc) 除以 group by(Cardno) 的发生率。提前致谢

数据

         Cardno  Sitedesc
0        883484        30
1       1017011        59
2        304531        48
3        304531        59
4        304531        32
5        687253        46
6        351841        59
7        976365        58
8        983485        46
9        326465        30
10       326465        40
11       983485        58
12       983485        46
13       983485        48
14       847535        31
15       687250        47
16       687250        46

标签: pythonpandas

解决方案


利用:

s = df.groupby(['Cardno','Sitedesc']).size()
out = s.div(s.sum(level=0), level=0)
print (out)

Cardno   Sitedesc
304531   48          1.0
326465   30          1.0
351841   59          1.0
395354   59          1.0
687253   46          1.0
687463   59          1.0
847535   31          1.0
883484   30          1.0
976365   58          1.0
983485   46          1.0
1017011  59          1.0
1038308  58          1.0
dtype: float64

推荐阅读