python - Python Pandas str.contains() 行中带有超链接
问题描述
我有两个这样的熊猫数据框:
df1
地点 | 关联 |
---|---|
零售商站点1 | https://www.retailer_site1.com |
... | ... |
零售商站点X | https://www.retailer_siteX.com |
df2
地点 | 关联 |
---|---|
零售商站点1 | 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)
部分将从链接中删除除字母、变音符号、数字和连接标点符号(其中最常见的字符是下划线)之外的任何字符。
推荐阅读
- c# - 使用 Microsoft Graph C# 下载 .eml 文件
- python-3.x - 在 Python 中的类中使用类变量的不可理解的名称错误
- java - Hibernate - 实体到 JSON
- python - Python:使用 JayDeBeApi 的 Apache Drill 错误的 JDBC 连接错误
- xero-api - 连接到 XERO API
- mysql - 如何使用首选 where 子句获取行,但也使用后备?
- c# - 将自定义设置的对象传递给嵌套类
- google-apps-script - Google Analytics API - RemarketingAudiences.insert 仅在linkedAdAccounts 为 AD_WORDS 时有效
- ios - AVPlayer 在 iOS 14.2 Beta 中无法播放
- java - 在没有观察者/听众的情况下检测变量变化?