我有数据:
WeekNumber Col2 Col3 Value1 Value2
1 Jonas Station1 8 3
2 Greg Station1 5 1
3 Anton Station1 1 2
1 Jonas Station1 4 6
2 Greg Station1 4 7
3 Mick Station2 8 3
4 Anton Station3 7 2
1 Jonas Station1 2 3
2 Greg Station1 7 1
我试过了:
df.groupby(['Col2','Col3','WeekNumber'])['Value2','Value2']。cumsum()
但是此解决方案不计算“总和”。
如何根据以下条件计算在Value1和Value 2中的累加值,该值在WeekNumber中增长:
我需要这样:
|桌子是|酷
| ------------- |:-------------:| -----:|
|第3栏是|右对齐| $ 1600 |
| col 2是|居中| $ 12 |
|斑马条纹|整洁| $ 1 |
最佳答案
IIUC:
In [47]: x = df.groupby(['Col2','Col3','WeekNumber']) \
.agg({'Value1':'cumsum', 'Value2':'cumsum','WeekNumber':'cumcount'})
In [48]: x['WeekNumber'] += df['WeekNumber']
In [49]: x
Out[49]:
Value1 Value2 WeekNumber
0 8 3 1
1 5 1 2
2 1 2 3
3 12 9 2
4 9 8 3
5 8 3 3
6 7 2 4
7 2 3 1
8 16 9 4