合并两个数据框并聚合匹配的列。

3

我有两个数据框,具有唯一的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个回答

5
使用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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接