匹配后从数据框中复制列

时间:2018-07-07 21:07:17

标签: python pandas dataframe

我有2个数据帧,我发现基于列(tld)的常见匹配项,一旦找到匹配项(源和目标中的列之间),我需要复制目标数据帧中的列的值吗?

数据框1:来源

   uuid           website company_name           tld
0     11  www.facebook.com     facebook  facebook.com
1     22     www.yahoo.com    yahoo inc     yahoo.com
2     33    www.google.com       Google    google.com
3     44     www.cisco.com        Cisco     cisco.com

数据框2:目标

  id  website           company_name           tld  match uuid
0  a  www.facebook.com      facebook  facebook.com  False  NaN
1  b         www.y.com     Yahoo Inc         y.com  False  NaN
2  c         www.g.com        Google         g.com  False  NaN
3  d         www.g.com    Google Inc         g.com  False  NaN
4  e  www.facebook.com  Facebook Inc  facebook.com  False  NaN

找到matches

destination.loc[destination.tld.isin(source.tld),'match'] = True

我需要将UUID列从源复制到UUID列 在目标数据框中。

 id           website company_name           tld  match  uuid
0  a  www.facebook.com     facebook  facebook.com   True  11
1  b         www.y.com     YahooInc         y.com  False  NaN
2  c         www.g.com       Google         g.com  False  NaN
3  d         www.g.com    GoogleInc         g.com  False  NaN
4  e  www.facebook.com  FacebookInc  facebook.com   True  11

1 个答案:

答案 0 :(得分:0)

这是您需要的吗?

df2.merge(df1[['tld','uuid']],on='tld',how='left')
Out[677]: 
  id           website company_name           tld  match  uuid
0  a  www.facebook.com     facebook  facebook.com   True   1.0
1  b         www.y.com     YahooInc         y.com  False   NaN
2  c         www.g.com       Google         g.com  False   NaN
3  d         www.g.com    GoogleInc         g.com  False   NaN
4  e  www.facebook.com  FacebookInc  facebook.com   True   1.0