2017-04-13 55 views
2

如何将以前的行值和当前行值加到新列? 我的电流输出:以前的行值之和

index,value 
0,1 
1,2 
2,3 
3,4 
4,5 

我的目标输出为:

index,value,sum 
0,1,1 
1,2,3 
2,3,6 
3,4,10 
4,5,15 

我知道,这是很容易与Excel做的,但我正在寻找解决方案做大熊猫。

我的代码:

import random, pandas 

recordlist=[1,2,3,4,5] 

df=pandas.DataFrame(recordlist, columns=["Values"]) 
+1

你有没有我们可以看到的代码的例子? – Astrom

+0

@Astrom我编辑了开始帖子。 –

回答

3

使用cumsum

df.assign(sum=df.value.cumsum()) 

     value sum 
index    
0   1 1 
1   2 3 
2   3 6 
3   4 10 
4   5 15 

或者

df['sum'] = df.value.cumsum() 
df 

     value sum 
index    
0   1 1 
1   2 3 
2   3 6 
3   4 10 
4   5 15 

如果df是一系列

pd.DataFrame(dict(value=df, sum=df.cumsum()) 
+1

我收到此解决方案的错误消息:AttributeError:'Series'对象没有属性'值'。 –

+0

@JuhoM使用'myseries.to_frame()将你的系列转换为一个数据框。assign(...) –

+0

@JuhoM我假设你有一个数据框。如果是一个系列,您可以使用PaulH的建议或查看我的编辑。 – piRSquared