索引与python中的多列匹配

索引与python中的多列匹配

我有两个大小不同的熊猫数据框。两个数据框看起来像

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/

10-09 12:44