panda根据正则表达式条件过滤列中的字符串并替换它



这里有一个来自pandas DataFrame的字符串。

https://www.gofundme.com/3hgsuu0,https://twitter.com/dog_rates/status/840632337062862849/photo/1

我想做的是遍历所有行,找到twitter url,并从列中删除NOTtwitter url。目标是在列中只包含twitter URL,而不是2个或多个URL。

我做的是

arch_drop_new1.expanded_urls.apply(lambda x:str(x(.split(","([0](

它为我提供了出现在包含1个以上url的行中的,之前的所有字符串。

屏幕截图

您可以使用.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演示。

注意,extract()将从每行中提取模式的第一次出现(此处,由于模式中有一个捕获组,因此仅为Group 1值(。

详细信息

  • (https?://twitter.com/S*?)-组1:https://twitter.com/http://twitter.com/,然后是0个或多个非空白字符,尽可能少
  • (?:,s*http|$)-与,匹配的非捕获组,0个或多个空白,然后是http或字符串末尾

相关内容

  • 没有找到相关文章

最新更新