基于列合并两个数据框 [英] Merge two dataframes based on a column

查看:65
本文介绍了基于列合并两个数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to compare name column in two dataframes df1 and df2 , output the matching rows from dataframe df1 and store the result in new dataframe df3. How do i do this in Pandas ?

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 执行内连接:

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

这篇关于基于列合并两个数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆