我必须在下面计算总和。 A应该为空白。 B应该是这样,c应该是31 + 30 = 61,上一个项目和当前项目的加法,D = 61 + 31 = 92,依此类推。
数据:
0 1 cumsum
1 A 31
2 B 31 31
3 C 30 61
4 D 31 92
5 E 30 122
6 F 31 153
7 G 31 184
8 H 30 214
9 I 31 245
10 J 30 276
my code:
data['cumsum'] = data[1].cumsum()
data
0 1 cumsum
1 A 31 31
2 B 31 61
3 C 30 92
4 D 31 122
5 E 30 153
6 F 31 184
7 G 31 214
8 H 30 245
9 I 31 276
10 J 30 306
我需要如下所示的预期输出:
0 1 cumsum
1 A 31
2 B 31 31
3 C 30 61
4 D 31 92
5 E 30 122
6 F 31 153
7 G 31 184
8 H 30 214
9 I 31 245
10 J 30 276
my code:
data['cumsum'] = data[1].cumsum()
data
答案 0 :(得分:3)
我认为您需要
let f = {
let xs: Vec<(usize, usize)> = Vec::new();
//
move |i: usize, j: usize| xs[j].1 - xs[i].0
};
let x = f(1, 2);
答案 1 :(得分:0)
如果您使用iloc
完成偏移量,则无需后退,因为熊猫会对齐索引。
df.iloc[1:, 1].cumsum()
2 31
3 61
4 92
5 122
6 153
7 184
8 214
9 245
10 275
Name: 1, dtype: int64
然后使用assign
创建新列。
df.assign(cumsum=df.iloc[1:, 1].cumsum())
0 1 cumsum
1 A 31 NaN
2 B 31 31.0
3 C 30 61.0
4 D 31 92.0
5 E 30 122.0
6 F 31 153.0
7 G 31 184.0
8 H 30 214.0
9 I 31 245.0
10 J 30 275.0