![](/img/trans.png)
[英]Merge two columns from multiple panda series dataframes based on string matching from two columns with different values
[英]Matching two data different columns from two different dataframes
所以我有两个不同的数据框,两个数据框都有称为“域”的列,并显示来自不同来源的域。 域很干净,看起来像www.google.com 、 www.facebook.com ,而不像www.facebook.com/4938249084 。
我要实现的目标是了解 DF1 中的任何域是否在 DF2 的域中,以及是否在 DF2 中,Append DF1 域是否在列表中。 这是我写的代码。
只是为了让你们有一个想法,DF1 有大约 4,000 条记录 v DF2 有大约 7,000 条记录。
DF1
Domains
0 NaN
1 www.hawaiiantimeathletics.com
2 NaN
3 www.beach-elite.com
4 NaN
5 www.dreamingoldvbc.com
6 www.pacificunionvb.com
7 www.alabamajuniors.com
8 www.birminghamvolleyball.com
9 www.magiccitythunder.com
DF2
Domains
0 www.labcsandiego.com
1 www.ahavavolleyball.com
2 www.northernelite-va.com
3 www.theedgevc.com
4 divadallas.org
5 www.beach-elite.com
6 650xtremevolleyball.org
7 www.clubsouthvb.com
8 www.northidahovolleyball.com
9 wajvolleyball.site123.me
在此示例中,唯一应附加到列表中的域是“www.beach-elite.com”。
这是我写的代码
def match_domain(col1,col2):
list1 = []
for a in col1:
v1 = a
for b in col2:
v2 = b
if v1 == v2:
list1.append(v1)
print(v1)
elif v1 != v2:
print('none')
match_domain(DF1, DF2)
先感谢您 !
您可以使用isin
function 来确定这一点。
import pandas as pd
df1 = pd.DataFrame({'Domains': ['NaN', 'www.hawaiiantimeathletics.com', 'NaN', 'www.beach-elite.com', 'www.dreamingoldvbc.com', 'www.pacificunionvb.com', 'www.alabamajuniors.com', 'www.birminghamvolleyball.com', 'www.magiccitythunder.com']})
df2 = pd.DataFrame({'Domains': ['www.labcsandiego.com', 'www.ahavavolleyball.com', 'www.northernelite-va.com', 'www.theedgevc.com', 'divadallas.org', 'www.beach-elite.com', '650xtremevolleyball.org', 'www.clubsouthvb.com', 'www.northidahovolleyball.com', 'wajvolleyball.site123.me']})
df1.Domains[df1.Domains.isin(df2.Domains)].unique()
这应该给你域列的交集。
这可以使用列表理解来解决。 将两个数据框转换为列表并在另一个列表中查找,如下所示:-
df1:
Domains
NaN
www.hawaiiantimeathletics.com
NaN
www.beach-elite.com
NaN
www.dreamingoldvbc.com
www.pacificunionvb.com
www.alabamajuniors.com
www.birminghamvolleyball.com
www.magiccitythunder.com
df2:
Domains
www.labcsandiego.com
www.ahavavolleyball.com
www.northernelite-va.com
www.theedgevc.com
divadallas.org
www.beach-elite.com
650xtremevolleyball.org
www.clubsouthvb.com
www.northidahovolleyball.com
wajvolleyball.site123.me
代码:
list1 = [ domain for domain in df1['Domains'].tolist() if domain in df2['Domains'].tolist() ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.