我有一个数据框:
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']
我正在尝试删除包含关键字的url,同时保留不包含这些关键字的url,到目前为止,这是唯一对我有用的方法,但是它只是删除了该单词的实例:
df['url'] = df['url'].str.replace('|'.join(keywordlist), ' ')
我尝试将字符串中的元素转换为列表,但是将其与部分较大的数据框组合回去时却遇到索引错误?
所需的输出:
Name url
A 'https://goo.com'
B 'https://www.goo.com'
C 'https://goo.com'
答案 0 :(得分:0)
我很确定您可以使用一些正则表达式来做到这一点。但您也可以这样做:
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