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

私は、これはエクセルで行うのは簡単であることを知っているが、私はパンダを行うためのソリューションを探しています。

マイコード:

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'オブジェクトに 'value'属性がありません。 –

+0

@JuhoMは、あなたのシリーズを 'myseries.to_frame()。assign(...) –

+0

でデータフレームに変換します。@JuhoMあなたはデータフレームがあると仮定しました。それがシリーズの場合は、PaulHの提案を使用したり、私の編集を見ることができます。 – piRSquared

関連する問題