我有一个如下数据框。
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
。
有什么想法吗?
答案 0 :(得分:5)
您只需要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