我有两个不同大小的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()
答案 0 :(得分:4)
默认使用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
答案 1 :(得分:1)
df1.merge(df2,by='x')
这样做