匹配大熊猫列中网址的模式

时间:2018-01-25 10:12:45

标签: python regex pandas

我目前正在处理包含大量链接的drop。 到目前为止,我想过滤指向网站列表的链接。 所以我写了一个数组,其中包含每个网站的xxx值: www.xxx.de/com/whatever 我想要做的是检查每个列条目与数组中的值。

list = ['forbes','bloomberg',...]
map = df['URL'].match(list)
df['URL'] = df.apply(map)
不知何故以这种方式。我不太确定如何使用列中的链接,因为我之前从未使用过字符串。 链接采用以下格式:

www.forbes.com/.../...

没有使用urlparse或者类似的方法有没有简单的方法来完成这项工作?

非常感谢你的帮助!

1 个答案:

答案 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