2017-07-25 10 views
1

私は4つの列A、B、C、D(実際の50+列)をdfとしましょう。私はcolの値をお互いに追加したいと思います。例えば:df['A'][0]=df['A'][0]+df['A'][1]などdf['B'][0] ...。私はそうするforループを作成し、変更後、私はそれぞれのcolsに結果を返す代入していますパンダでお互いの列の値を加算する

**col1** col2 col3 
A 3  222  abc 
B 5  433  dfg 
C 7  111  tyu 
D 4  222  iop 

- :

col1 col2 col3 
A 1 222 abc 
B 2 433 dfg 
C 3 111 tyu 
D 4 222 iop 

は次のようになるはずです。

for k,g in colIndividual.iteritems(): 
    if(k+1<len(colIndividual)): 
     print(g+colIndividual[colIndividual.index[k+1]]) 

しかし、私はこの論理をコード化するのは正しい、美しい方法ではないのですか?これは将来的にこのdfが50列を超えて増加する可能性があるため、パフォーマンスに影響を与えます。ここで私を助けてくれますか? ご協力ありがとうございます。

+1

は、あなたが() '' df.sumの後にありますか? – MaxU

+0

いいえ、私はそれぞれの列にインデックス値を追加したい – Avij

+1

小さな再現可能なデータセット(テキスト/ CSV形式)とあなたの希望のデータセットを投稿してください。現在はそれほど明確ではありません... [再現性の良いパンダの例を作る方法](http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples)を読んで投稿を編集してくださいそれに対応して。 – MaxU

答えて

2
df['col1'].rolling(2).sum().shift(-1).fillna(df['col1']) 

出力:

col1 col2 col3 
A 3.0 222 abc 
B 5.0 433 dfg 
C 7.0 111 tyu 
D 4.0 222 iop 
関連する問題