我有两个大小不同的熊猫数据框。两个数据框看起来像
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/