Skip to main content
 首页 » 编程设计

python之索引与python中的多列匹配

2025年05月04日22落叶

我有两个不同大小的 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