数据和结果如下,需求就是python pandas按品种分组,求属于abc类型的金额合计,按品种求金额合计,最后求出占比。
注意:如果是通过筛选数据,分组求和,在拼接求占比,那么已经实现了,现在就是想知道有没有更高级的方法,比如使用groupby.apply或者pd.pivot_table等方式实现
数据:
df = pd.DataFrame({'品种':list('AAAABBBCCD'),
'类型':list('abcdccdadd'),
'金额':[1,1,1,1,1,1,1,1,1,1]
})
品种 | 类型 | 金额 |
---|---|---|
A | a | 1 |
A | b | 1 |
A | c | 1 |
A | d | 1 |
B | c | 1 |
B | c | 1 |
B | d | 1 |
C | a | 1 |
C | d | 1 |
D | d | 1 |
结果:
品种 | 属于abc类型的金额汇总 | 按品种汇总金额 | 占比 |
---|---|---|---|
A | 3 | 4 | 75.00% |
B | 2 | 3 | 66.67% |
C | 1 | 2 | 50.00% |
D | 0 | 1 | 0.00% |