2017-04-13 53 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