我有一个像这样的df:
类别 | 数量 | 常量 | 一个 | 141.2 | 271.01 |
---|---|---|
一个 | 57.4 | 271.01 |
一个 | 51.3 | 271.01 |
两个 | 24.69 | 27.29 |
两个 | 12.72 | 27.29 |
两个 | 10.37 | 27.29 |
使用groupby.cumsum
计算累积和,并从"Constant":
df['Constant'] -= df.groupby('Category')['Number'].cumsum()
或者,如果您不想使用就地操作
df['New_Col'] = df['Constant'].sub(df.groupby('Category')['Number'].cumsum())
输出:
Category Number Constant
0 One 141.20 129.81
1 One 57.40 72.41
2 One 51.30 21.11
3 Two 24.69 2.60
4 Two 12.72 -10.12
5 Two 10.37 -20.49