合并两个 DataFrame 并聚合匹配列

1nf*_*rn0 3 python merge pandas

我有两个具有唯一 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
Run Code Online (Sandbox Code Playgroud)

我想做的是将这些数据框合并到 ID 列上并对匹配的数据框求和。不匹配的列应保持原样。

它应该变成这样

ID  Col1  Col2 Col3
1    12    1    NaN
2    10    12   0
3    8     7    11
5    3     2    3
Run Code Online (Sandbox Code Playgroud)

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

Flo*_*oor 5

使用concat,groupbysum

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
Run Code Online (Sandbox Code Playgroud)