我想以这种方式将来自两个数据帧的数据加在一起:
>>> df1 = pd.DataFrame({'col1': [1, 2, 3], 'col2': [2, 3, 2],
'col3': ['aaa', 'bbb', 'ccc']})
>>> df1
col1 col2 col3
0 1 2 aaa
1 2 3 bbb
2 3 2 ccc
>>> df2 = pd.DataFrame({'col1': [4, 4, 5], 'col2': [4, 4, 5],
'col3': ['some', 'more', 'third']})
>>> df2
col1 col2 col3
0 4 4 some
1 4 4 more
2 5 5 third
我希望结果是:
>>> result
col1 col2 col3
0 4 4 some
1 4 4 more
2 9 7 third
3 1 2 aaa
4 2 3 bbb
即:如果存在具有相同值的col3,则应将该条目的col1 + col2加在一起。 如果它不存在,那么行应该只是连接。 行的顺序无关紧要,我不需要保留df1和df2,之后我只关心结果。
实现这一目标的最佳方法是什么?
我刚刚从不同的csv文件加载的数据看起来完全一样,所以也许有另一种方法可以做到这一点? 结果我只想再次保存为上面的csv文件。
答案 0 :(得分:2)
让我们使用$
和pd.concat
对值进行求和。
groupby
输出:
pd.concat([df1,df2]).groupby('col3').sum().reset_index().reindex_axis(['col1','col2','col3'],axis=1)