【发布时间】:2018-11-17 22:59:13
【问题描述】:
我有一个如下的数据框。
idx vals
0 10
1 21
2 12
3 33
4 14
5 55
6 16
7 77
我想执行cumsum(并避免for),但只考虑具有相同idxmod 2 的行。例如,对于第 3 行,我想获得 21+33=54,而对于第 4 行,我想获得 10+12+14 = 36。
有什么想法吗?
【问题讨论】:
我有一个如下的数据框。
idx vals
0 10
1 21
2 12
3 33
4 14
5 55
6 16
7 77
我想执行cumsum(并避免for),但只考虑具有相同idxmod 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
【讨论】: