熊猫:选择要添加的列

时间:2016-02-13 14:04:39

标签: python pandas

假设我的数据如下:

df1 = pandas.DataFrame({'dontTouch1':[0,1,2,3,4,5],
                        'dontTouch2':[0,1,2,3,4,5],
                        'sumThis':   [1,1,3,5,8,13]})
df2 = pandas.DataFrame({'dontTouch1':[0,1,2,3,4,5],
                        'dontTouch2':[0,1,2,3,4,5],
                        'sumThis':   [1,1,3,5,8,13]})

现在,同时:

sum_all = df1 + df2
sum_sumThis = df1['sumThis'] + df2['sumThis']

...分别返回所有列和仅sumThis列的总和,我对创建新DataFrame的内容感兴趣,其中只有sumThis被添加到一起。有没有整齐的内置?

我要么错过了一些明显的东西,要么就是必须使用混乱的切片方法。感谢。

2 个答案:

答案 0 :(得分:2)

某些东西不是“整齐的内置”,但也不是“杂乱的切片方法”(恕我直言):

df3 = df1.copy()
df3.sumThis += df2.sumThis
>>> df3
    dontTouch1  dontTouch2  sumThis
0   0   0   2
1   1   1   2
2   2   2   6
3   3   3   10
4   4   4   16
5   5   5   26

答案 1 :(得分:1)

我认为你可以使用DataFrame构造函数:

print pandas.DataFrame({'dontTouch1': df1['dontTouch1'], 
                        'dontTouch2': df1['dontTouch2'], 
                        'sum': df1['sumThis'] + df2['sumThis'] })
   dontTouch1  dontTouch2  sum
0           0           0    2
1           1           1    2
2           2           2    6
3           3           3   10
4           4           4   16
5           5           5   26