如何将两个数据帧的数据加在一起

时间:2017-05-09 18:20:44

标签: python pandas

我想以这种方式将来自两个数据帧的数据加在一起:

    >>> 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文件。

1 个答案:

答案 0 :(得分:2)

让我们使用$pd.concat对值进行求和。

groupby

输出:

pd.concat([df1,df2]).groupby('col3').sum().reset_index().reindex_axis(['col1','col2','col3'],axis=1)