gogasca
gogasca

Reputation: 10058

Pandas find common matches between 2 dataframes

I have 2 dataframes and I want to find common matches based on a column (tld), once match has been found, I want to update column match as True. How to update column in destination dataframe?

Dataframe 1: source

   uuid           website company_name           tld
0     1  www.facebook.com     facebook  facebook.com
1     2     www.yahoo.com    yahoo inc     yahoo.com
2     3    www.google.com       Google    google.com
3     4     www.cisco.com        Cisco     cisco.com

Dataframe 2: destination

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

Find matches:

matches = source[source.tld.isin(destination.tld.values)]

Matches

0     1  www.facebook.com     facebook  facebook.com

Destination

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

Upvotes: 0

Views: 544

Answers (2)

BENY
BENY

Reputation: 323226

Using isin to update:

df2.loc[df2.tld.isin(df1.tld),'match']=True
df2

Out[669]: 
  id           website company_name           tld  match
0  a  www.facebook.com     facebook  facebook.com   True
1  b         www.y.com     YahooInc         y.com  False
2  c         www.g.com       Google         g.com  False
3  d         www.g.com    GoogleInc         g.com  False
4  e  www.facebook.com  FacebookInc  facebook.com   True

Upvotes: 2

iacob
iacob

Reputation: 24181

This will achieve what you want:

destination["match"] = destination["tld"].isin(source.tld)

Upvotes: 0

Related Questions