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 中,但它不起作用。
使用concat,groupby和sum即
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)