2017-07-25 183 views
1

我有一个df,让我们说4个列A,B,C,D(真实的50+列)。我希望将cols的值相加。例如: - df['A'][0]=df['A'][0]+df['A'][1]等等df['B'][0] ...。在熊猫中添加一列的值

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

应该成为像: -

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

我创建了一个for循环这样做,修改后的我正在分配回结果到各自的cols。

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

然而,作为python世界的新手,我不知道它是编写这个逻辑的正确和美丽的方式。这会影响性能,因为在未来这个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