这里有一个来自熊猫DataFrame的字符串。
https://www.gofundme.com/3hgsuu0,https://twitter.com/dog_rates/status/840632337062862849/photo/1
我要做的是遍历所有行,找到Twitter网址,然后从该列中删除 NOT Twitter网址。 目标是在栏中仅包含Twitter网址,而不是2个或更多网址。
我所做的是
arch_drop_new1.expanded_urls.apply(lambda x:str(x).split(“,”)[0])
它为我提供了,
之前的所有字符串,这些字符串出现在包含多个URL的行中。
答案 0 :(得分:0)
您可以.str.extract()
的值
rx = r'(https?://twitter\.com/\S*?)(?:,\s*http|$)'
arch_drop_new1['twitter_urls'] = arch_drop_new1['expanded_urls'].str.extract(rx, expand=False)
请参见regex demo。
注意extract()
将从每一行中提取出该模式的第一个匹配项(此处,由于该模式中只有一个捕获组,因此仅提取组1的值)。
详细信息
(https?://twitter\.com/\S*?)
-第1组:https://twitter.com/
或http://twitter.com/
,然后是0个或更多的非空白字符,并应尽可能少(?:,\s*http|$)
-一个非捕获组,匹配,
,0个或多个空格,然后匹配http
或字符串结尾。