I’m trying to compare two different columns from two different DataFrames.
JavaScript
x
12
12
1
test_website1
2
Domain
3
0 www.google.com
4
1 www.facebook.com
5
2 www.yahoo.com
6
7
test_website2
8
Domain
9
0 www.bing.com
10
1 www.instagram.com
11
2 www.google.com
12
JavaScript
1
10
10
1
testlist = []
2
3
def match_domain(col1, col2):
4
for a in col1:
5
v1 = a
6
for b in col2:
7
v2 = b
8
if v2 == v1:
9
testlist.append(v1)
10
JavaScript
1
3
1
test_website1 = df_website_test1['Domain']
2
test_website2 = df_website_test2['Domain']
3
When I call:
JavaScript
1
2
1
match_domain(test_website1, test_website2)
2
The output should be just “www.google.com”
but instead this is the output I get.
JavaScript
1
2
1
['www.google.com', 'www.facebook.com', 'www.yahoo.com']
2
Completely Stuck! Thank you for your help in advance!
Advertisement
Answer
The standard way to do this in pandas is an inner merge
(default is how='inner'
):
JavaScript
1
5
1
pd.merge(df1['Domain'], df2['Domain'])
2
3
# Domain
4
# 0 www.google.com
5
If you really want a list, chain tolist
:
JavaScript
1
4
1
pd.merge(df1['Domain'], df2['Domain'])['Domain'].tolist()
2
3
# ['www.google.com']
4