假设我的数据如下:
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
被添加到一起。有没有整齐的内置?
我要么错过了一些明显的东西,要么就是必须使用混乱的切片方法。感谢。
答案 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