合并两个DataFrame和聚合匹配列

时间:2017-12-08 11:39:46

标签: python pandas merge

我有两个具有唯一ID的数据框和匹配的列,如下所示:

df1 = pd.DataFrame({"ID" : [1,2,3], "Col1": [12,7,4], "Col2": [1,7,2]})

ID  Col1  Col2
1    12    1
2    7     7
3    4     2

df2 = pd.DataFrame({"ID" : [2,3,5], "Col1": [3,4,3], "Col2": [5,5,2], "Col3": [0,11,3]})

ID  Col1  Col2  Col3
2     3     5    0
3     4     5    11
5     3     2    3

我想要做的是在ID列上合并这些数据帧并对匹配的数据进行求和。不匹配的列应保持不变。

它应该变成这样的东西

ID  Col1  Col2 Col3
1    12    1    NaN
2    10    12   0
3    8     7    11
5    3     2    3

我尝试将一个df添加到另一个,但它不起作用。

1 个答案:

答案 0 :(得分:3)

使用concatgroupbysum

ndf = pd.concat([df1,df2]).groupby('ID').sum()

   Col1  Col2  Col3
ID                  
1     12     1   NaN
2     10    12   0.0
3      8     7  11.0
5      3     2   3.0