简体   繁体   English

如何从两个不同的数据框中找到两列之间的交集

[英]How to find the intersection between two columns from two different dataframes

I'm trying to compare two different columns from two different DataFrames.我正在尝试比较来自两个不同 DataFrame 的两个不同列。

test_website1 
          Domain
0      www.google.com
1    www.facebook.com
2       www.yahoo.com

test_website2 
          Domain
0      www.bing.com
1    www.instagram.com
2       www.google.com

testlist = []

def match_domain(col1, col2):
    for a in col1:
        v1 = a
        for b in col2:
            v2 = b
            if v2 == v1:
                testlist.append(v1)

test_website1 = df_website_test1['Domain']
test_website2 = df_website_test2['Domain']

When I call:当我打电话时:

match_domain(test_website1, test_website2)

The output should be just "www.google.com" output 应该只是“www.google.com”

but instead this is the output I get.但这是我得到的 output。

['www.google.com', 'www.facebook.com', 'www.yahoo.com']

Completely Stuck!完全卡住了! Thank you for your help in advance!提前谢谢你的帮助!

The standard way to do this in pandas is an inner merge (default is how='inner' ):在 pandas 中执行此操作的标准方法是内部merge (默认为how='inner' ):

pd.merge(df1['Domain'], df2['Domain'])

#            Domain
# 0  www.google.com

If you really want a list, chain tolist :如果你真的想要一个列表,链到tolist

pd.merge(df1['Domain'], df2['Domain'])['Domain'].tolist()

# ['www.google.com']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM