【发布时间】:2021-10-20 11:40:16
【问题描述】:
我在 pandas 数据框中有一列,其中包含指向网站的各种 URL:
df:
ID URL
0 1 https://www.Facebook.com/fr
1 2 https://Twitter.com/de
2 3 https://www.Youtube.com
3 4 www.Microsoft.com
4 5 https://www.Stackovervlow.com
我正在使用 urlparse().netloc 清理 URL,使其仅包含域名(例如,从 https://www.Facebook.com/fr 到 www.Facebook.com)。一些 URL 已经是干净的格式(上面的www.Microsoft.com),将urlparse().netloc 应用于这些干净的 URL 会导致一个空单元格。因此,我试图将 urlparse().netloc 函数应用于包含字符串“http”的 URL 列的元素,否则它应该返回原始 URL。这是我尝试使用的代码:
df['URL'] = df['URL'].apply(
lambda x: urlparse(x).netloc if x.str.contains("http", na=False) else x
)
但是,我收到此错误消息:AttributeError: 'str' object has no attribute 'str'。任何有关我如何克服这个问题以完成任务的帮助将不胜感激!
【问题讨论】: