我目前正在处理包含大量链接的drop。 到目前为止,我想过滤指向网站列表的链接。 所以我写了一个数组,其中包含每个网站的xxx值: www.xxx.de/com/whatever 我想要做的是检查每个列条目与数组中的值。
list = ['forbes','bloomberg',...]
map = df['URL'].match(list)
df['URL'] = df.apply(map)
不知何故以这种方式。我不太确定如何使用列中的链接,因为我之前从未使用过字符串。
链接采用以下格式:
www.forbes.com/.../...
没有使用urlparse或者类似的方法有没有简单的方法来完成这项工作?
非常感谢你的帮助!
答案 0 :(得分:4)
我认为新列需要extract
:
df = pd.DataFrame({'URL':['www.forbes.com/.../...',
'www.bloomberg.com/something',
'www.webpage.com/something']})
L = ['forbes','bloomberg']
df['new'] = df['URL'].str.extract("(" + "|".join(L) +")", expand=False)
print (df)
URL new
0 www.forbes.com/.../... forbes
1 www.bloomberg.com/something bloomberg
2 www.webpage.com/something NaN
但是如果想要过滤行只使用contains
:
df = df[df['URL'].str.contains("|".join(L))]
print (df)
URL
0 www.forbes.com/.../...
1 www.bloomberg.com/something