首页 > 解决方案 > 如何从 Python 中的 URL 中删除 .com 和“https://”之后的字符串

问题描述

我需要使用 url 作为主键来合并两个数据框。但是,url 中有一些额外的字符串,例如 df1,我有https://www.mcdonalds.com/us/en-us.html,而在 df2 中,我有https://www.mcdonalds.com

我需要从 url 中删除 .com 和 https:// 之后的 /us/en-us.html,这样我就可以使用 2 个 dfs 之间的 url 执行合并。下面是一个简化的例子。解决方案是什么?

df1={'url': ['https://www.mcdonalds.com/us/en-us.html','https://www.cemexusa.com/find-your- 
location']}
df2={'url':['https://www.mcdonalds.com','www.cemexusa.com']}

df1['url']==df2['url']
Out[7]: False

谢谢。

标签: pythonpandasre

解决方案


URL 的解析并非易事。看看标准库中的urllib 模块

以下是删除域后路径的方法:

import urllib.parse

def remove_path(url):
    parsed = urllib.parse.urlparse(url)
    parsed = parsed._replace(path='')
    return urllib.parse.urlunparse(parsed)

df1['url'] = df1['url'].apply(remove_path)

推荐阅读