我有一个数据框架:
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']
我正在尝试删除包含关键字的urls,而保留不包含关键字的urls,到目前为止,这是唯一对我有效的方法,但是它只删除了单词的实例:
df['url'] = df['url'].str.replace('|'.join(keywordlist), ' ')
我试图将字符串中的元素转换为列表,但是当我将其与其所属的更大的数据帧组合回来时,我得到了一个索引错误,有人遇到过这种情况吗?
所需输出:
Name url
A 'https://goo.com'
B 'https://www.goo.com'
C 'https://goo.com'
发布于 2019-06-12 03:44:50
我非常确定您可以使用一些正则表达式来做到这一点。但是你也可以这样做:
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
https://stackoverflow.com/questions/56550652
复制相似问题