Reputation: 10058
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
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
Reputation: 24181
This will achieve what you want:
destination["match"] = destination["tld"].isin(source.tld)
Upvotes: 0