2016-02-13 143 views
2

說,我看起來像數據:現在熊貓:選擇要添加哪些列

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

東西不相當 「整齊建宏」,但也沒有完全 「混亂切片方法」(恕我直言):

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 
+0

謝謝,這是一個可接受的「權衡」。 – gustafbstrom

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 
+0

謝謝。這工作。 – gustafbstrom