首页 > 解决方案 > 没有当前行的Python中的累积和

问题描述

我需要在不计算当前行的情况下找到前 3 行的累积和,这里有一个简短的示例:

ID
一个 10
5
4
1
2
C 1
C 3

这就是我想要达到的结果:

ID
一个 0
0
5
9
10
C 0
C 3

标签: pythonpandasdataframerolling-computation

解决方案


你可以试试:

df['SUM'] = (df.groupby('ID')['SUM']
               .transform(lambda x: x.rolling(4,min_periods=1).sum())
               .sub(df['SUM'])
            )

输出:

  ID  SUM
0  A    0
1  B    0
2  B    5
3  B    9
4  B   10
5  C    0
6  C    1

推荐阅读