CUMSUM添加如下

时间:2019-06-15 15:17:47

标签: python pandas python-2.7

我必须在下面计算总和。 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

2 个答案:

答案 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