[英]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.我有 2 个数据框,我想根据列 (tld) 查找常见匹配项,一旦找到匹配项,我想将列匹配更新为 True。 How to update column in destination dataframe?如何更新目标数据框中的列?
Dataframe 1: source数据框 1:源
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数据框 2:目的地
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
Using isin
to update:使用isin
更新:
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
这将实现您想要的:
destination["match"] = destination["tld"].isin(source.tld)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.