我有这个数据框:
id priority quantity
0 A 1 2
1 A 2 4
2 A 3 4
3 A 4 2
4 B 1 5
5 B 2 7
6 B 3 2
7 B 4 3
我想变成这个:
id priority quantity cumulativeQuantity
0 A 1 2 2
1 A 2 4 6
2 A 3 4 10
3 A 4 2 12
4 B 1 5 5
5 B 2 7 12
6 B 3 2 14
7 B 4 3 17
列id
,priority
和quantity
不变。
cumulativeQuantity
是id
中所有quantity
从1到n的总和,其中n是当前行的priority
。
priority
可以取任何值。只有订单很重要。如果优先级低于当前行的优先级,我们求和。
答案:
df.groupby(['id','priority']).sum().groupby(level=0).cumsum().reset_index()