我在熊猫中有以下数据框
Date Code ID Quantity
16-08-2018 156 1 10
16-08-2018 156 2 10
16-08-2018 156 3 10
16-08-2018 156 4 10
17-08-2018 157 1 30
17-08-2018 157 2 20
17-08-2018 157 3 30
17-08-2018 157 4 20
我想按Date and Code
计算ID在总数量组中所占的百分比。我想要的数据框是
Date Code ID Quantity Perc
16-08-2018 156 1 10 25
16-08-2018 156 2 10 25
16-08-2018 156 3 10 25
16-08-2018 156 4 10 25
17-08-2018 157 1 30 30
17-08-2018 157 2 20 20
17-08-2018 157 3 30 30
17-08-2018 157 4 20 20
我怎么在熊猫里做?
答案 0 :(得分:1)
将GroupBy
+ transform
与'sum'
一起使用:
g = df.groupby(['Date', 'Code'])['Quantity'].transform('sum')
df['Perc'] = df['Quantity'] / g * 100
结果:
Date Code ID Quantity Perc
0 16-08-2018 156 1 10 25
1 16-08-2018 156 2 10 25
2 16-08-2018 156 3 10 25
3 16-08-2018 156 4 10 25
4 17-08-2018 157 1 30 30
5 17-08-2018 157 2 20 20
6 17-08-2018 157 3 30 30
7 17-08-2018 157 4 20 20