【发布时间】:2021-08-12 06:54:25
【问题描述】:
样本数据集:
id val
0 9 1
1 9 0
2 9 4
3 9 6
4 9 2
5 9 3
6 5 0
7 5 1
8 5 6
9 5 2
10 5 4
从数据集中,我想生成一个列sum。对于前 3 行:sum=sum+val(按 id 分组)。从第 4 行开始,每行包含val 列(按 id 分组)的前 3 行的累积和。循环遍历每一行。当出现新的id时,应该从头开始计算。
期望的输出:
id val sum
0 9 1 1
1 9 0 1
2 9 4 5
3 9 6 10
4 9 2 12
5 9 3 11
6 5 0 0
7 5 1 1
8 5 6 7
9 5 2 9
10 5 4 12
我试过的代码:
df['sum']=df['val'].rolling(min_periods=1, window=3).groupby(df['id']).cumsum()
如何计算自定义累积和函数?
【问题讨论】:
-
这能回答你的问题吗? Pandas- Cumilative Sum of previous row values(重复)
-
不,它没有。
标签: pandas