我有两个大小不同的 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
关于python - python中多列的索引匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40290348/