Pandas Cumsum 跳过行

Pandas Cumsum skip rows

我有一个如下所示的数据框。

idx vals
0   10
1   21
2   12
3   33
4   14
5   55
6   16
7   77

我想执行 cumsum(并避免 for)但只考虑具有相同 idx mod 2 的行。例如,对于第 3 行,我想获得 21+33=54,而对于第 4 行,10+12+14 = 36.

有什么想法吗?

你只需要 groupby 这里

df.vals.groupby(df.idx%2).cumsum()
Out[75]: 
0     10
1     21
2     22
3     54
4     36
5    109
6     52
7    186
Name: vals, dtype: int64