繁体   English   中英

Python Pandas str.contains() 在行中带有超链接

[英]Python Pandas str.contains() with hyperlinks in rows

我有两个熊猫数据框,如下所示:

df1

地点 关联
零售商_site1 https://www.retailer_site1.com
... ...
零售商_siteX https://www.retailer_siteX.com

df2

地点 关联
零售商_site1 https://www.retailer_site1.com
... ...
零售商站点Y https://www.retailer_siteY.com

所以我想通过df2并在df1中找到来自df2的链接实例。 这是我的代码:

    for row in df2['link'].astype(str):
        boolean_findings = df1['link'].str.contains(row)

当我打印 boolean_findings 时,我得到的都是假的,我知道这不可能是真的,因为我在我的 excel 文件中看到本地匹配:

boolean_findings
错误的
错误的
...
错误的

我想知道的是为什么超链接字符串文本没有与第一个 df 上的等效文本匹配,以及我可以做些什么来匹配站点。

"我看了一下,注意到有些网站的链接中包含() ,这可能会丢弃链接

在比较链接时,您似乎只需要考虑字母数字/下划线字符,您可以使用

df2["link"].str.replace(r'\W+','', regex=True).isin(
    df1["link"].str.replace(r'\W+','', regex=True))

.str.replace(r'\\W+','', regex=True)部分将从链接中删除除字母、变音符号、数字和连接符标点符号(其中最常见的字符是下划线)以外的任何字符。

暂无
暂无

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

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