从pandas数据框中的字符串中删除SPECIFIC URL

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (16)

我有一个数据帧:

Name  url

 A    'https://foo.com, https://www.bar.org, https://goo.com'
 B    'https://foo.com, https://www.bar.org, https://www.goo.com'
 C    'https://foo.com, https://www.bar.org, https://goo.com'

然后是关键字列表:

keyword_list = ['foo','bar']

我正在尝试删除包含关键字的网址,同时保留那些不包含关键字的网址,到目前为止这是唯一对我有效的方法,但它只删除了该单词的实例:

df['url'] = df['url'].str.replace('|'.join(keywordlist), ' ')

我试图将字符串中的元素转换为列表,但是当我将它与更大的数据帧组合在一起时,我得到一个索引错误,之前遇到过这个问题吗?

期望的输出:

Name  url

 A    'https://goo.com'
 B    'https://www.goo.com'
 C    'https://goo.com'
提问于
用户回答回答于

我很确定你可以用一些正则表达式来做到这一点。但你也可以这样做:

new_df = df.set_index('Name').url.str.split(',\s+', expand=True).stack()

(new_df[~new_df.str.contains('|'.join(keyword_list))]
      .reset_index(level=1, drop=True)
      .to_frame(name='url')
      .reset_index()
)

输出:

  Name                  url
0    A      https://goo.com
1    B  https://www.goo.com
2    C      https://goo.com

扫码关注云+社区

领取腾讯云代金券