我有两个不同大小的 Pandas 数据框。两个数据框看起来像
df1 =
x y data
1 2 5
2 2 7
5 3 9
3 5 2
另一个数据框看起来像:
df2 =
x y value
5 3 7
1 2 4
3 5 2
7 1 4
4 6 5
2 2 1
7 5 8
我正在尝试合并这两个数据帧,以便最终数据帧预期具有相同的 x 和 y 组合以及各自的值。我期待这种格式的最终数据框:
x y data value
1 2 5 4
2 2 7 1
5 3 9 7
3 5 2 2
我试用了这段代码,但没有得到预期的结果。
dfB.set_index('x').loc[dfA.x].reset_index()
请您参考如下方法:
使用merge , 默认情况下 how='inner' 所以它可以省略,如果只在相同的列上加入参数 on 也可以省略:
print (pd.merge(df1,df2))
x y data value
0 1 2 5 4
1 2 2 7 1
2 5 3 9 7
3 3 5 2 2
如果在真实数据中有多个相同的列名使用:
print (pd.merge(df1,df2, on=['x','y']))
x y data value
0 1 2 5 4
1 2 2 7 1
2 5 3 9 7
3 3 5 2 2
