假设我有以下数据框:
```
```
我想创建一个按用户分组的 nums 的累加和,只有当 flag == 1 时才进行累加。结果应该是这样的:
```
```
到目前为止,我已经按 flag 进行了累加,但是没有按用户进行分组。
我需要帮助使它们一起工作。
date | flag | user | num | |
---|---|---|---|---|
0 | 2019-01-01 | 1 | a | 10 |
1 | 2019-01-02 | 0 | a | 20 |
2 | 2019-01-03 | 1 | b | 30 |
3 | 2019-03-04 | 1 | b | 40 |
date | flag | user | num | cumsum | |
---|---|---|---|---|---|
0 | 2019-01-01 | 1 | a | 10 | 10 |
1 | 2019-01-02 | 0 | a | 20 | 10 |
2 | 2019-01-03 | 1 | b | 30 | 30 |
3 | 2019-03-04 | 1 | b | 40 | 70 |
df['cumsum'] = df[df['flag'] == 1 ]['num'].transform(pd.Series.cumsum)
或者按用户累加忽略标志
df['cumsum'] = df.groupby('user')['num'].transform(pd.Series.cumsum)
我需要帮助使它们一起工作。