这是输入数据框:
id val
0 A 1
1 B 2
2 A -3
3 C 1
4 D 5
5 B 6
6 C -2
我想按 id 对条目进行分组,然后计算到目前为止看到的每个组的最新成员的运行总和。以下是所需输出的样子,并解释了它是如何获得的:
id val out
0 A 1 1
1 B 2 3 (2 + 1)
2 A -3 -1 (-3 + 2)
3 C 1 0 (1+ -3 +2)
4 D 5 5 (5 + 1 + -3 + 2_
5 B 6 9 (6 + 5 + 1 + -3)
6 C -2 6 (-2 + 6 + 5 -3)
这里有一些更详细的解释:1)id=1的行有3=2+1,因为当时你有2组,As和Bs,每组1行,所以你必须从每个组中取一行团体。
2) id=2 的行有 -1=-3+2 因为那时你有 2 个组,As 和 Bs。As 中的最新行是,2 A -3
而 Bs 中的单个(因此也是最近的)行是1 B 2
,因此您添加了这 2 行。
3)在id=6的那一行,你加起来
2 A -3
4 D 5
5 B 6
6 C -2
您从每个组中取出 1 行,那是当时最近的行。