繁体   English   中英

从 DataFrame 中的 URL 中提取路径

[英]Extracting Path from URLs in DataFrame

我敢肯定,这个问题的答案很简单——我只是因为某种原因做不到。

我想在不使用 for 循环的情况下从 URL 的 DataFrame 中提取 URL 路径 - 因为我将针对 1M+ 行运行它并且循环太慢。

from urllib.parse import urlparse
d = {'urls': ['https://www.example.com/ex/1','https://www.example.com/1/ex']}
df = pd.DataFrame(data=d)
df
df['urls'].apply(urlparse)

以上是我所在的位置,它返回 urllib 返回的 URL 的所有部分的 object

所需的最终结果是 DataFrame,如下所示:

d = {'urls': ['https://www.example.com/ex/1','https://www.example.com/1/ex'], 'url_path': ['/ex/1', '/1/ex']}

如果有人知道如何解决这个问题 - 我将不胜感激!

谢谢!

urlparse的文档字符串清楚地表明它的结果是一个命名的 6 元组,其中包含以下字段: <scheme>://<netloc>/<path>;<params>?<query>#<fragment>

所以(1)在索引2处获取元组,然后使用orient='list'转换为 dict :

df['paths'] = df['urls'].apply(lambda x: urlparse(x)[2])
df.to_dict(orient='list')
> {'urls': ['https://www.example.com/ex/1', 'https://www.example.com/1/ex'],
 'paths': ['/ex/1', '/1/ex']}

暂无
暂无

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

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