繁体   English   中英

基于列合并两个数据框

[英]Merge two dataframes based on a column

我想比较两个数据框df1和df2中的名称列,从数据框df1输出匹配的行,并将结果存储在新的数据框df3中。 我如何在熊猫中做到这一点?

df1

place name qty unit
NY    Tom   2  10
TK    Ron   3  15
Lon   Don   5  90
Hk    Sam   4  49

df2

place name price 
PH    Tom   7    
TK    Ron   5    

结果:

df3

place name qty unit
NY    Tom   2  10
TK    Ron   3  15

选项1

使用df.isin

In [1362]: df1[df1.name.isin(df2.name)]
Out[1362]: 
  place name  qty  unit
0    NY  Tom    2    10
1    TK  Ron    3    15

选项2

使用df.merge执行内部df.merge

In [1365]: df1.merge(df2.name.to_frame())
Out[1365]: 
  place name  qty  unit
0    NY  Tom    2    10
1    TK  Ron    3    15

选项3

使用df.eq

In [1374]: df1[df1.name.eq(df2.name)]
Out[1374]: 
  place name  qty  unit
0    NY  Tom    2    10
1    TK  Ron    3    15

您需要一个称为内部联接的东西。

df1.merge(df2,on = 'name')

place_x name    qty unit place_y price
NY      Tom      2  10     PH      7
TK      Ron      3  15     TK      5

当您同时合并两个数据框中的一列时,就会发生_x_y

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM