[英]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.