python - 如何从 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
谢谢。
解决方案
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)
推荐阅读
- java - 屏幕旋转后未保存 RecyclerView 位置
- c++ - 如何正确地将二维 int 数组传递给 C++ 中的函数?
- office-js - 如何在任务窗格加载项中使用 Office.StartupBehavior.load?
- spring-boot - 使用 Quartz 和 Spring boot 安排任务
- c++ - Nlohmann::json& 作为函数参数,而不在标头中包含 json.hpp
- audio - 编解码器或比特率或采样?对于最佳音质,哪个最重要?
- python - 如何在django中查询反向多对多
- c - 使用结构和指针的错误输出
- typescript - 打字稿:扩展字符串文字联合类型中的必需值
- json - 用于将 csv 转换为 yaml 的在线工具?