我有数据:

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

07-24 09:53
查看更多