我有一个数据框df
,其中包含未清除的文本字符串
phrase
0 the quick brown br fox
1 jack and jill went up the hill
我还有一个单词和字母分组列表,我想remove
称为remove,它看起来像:
['br', and]
在此示例中,我想要以下输出:
phrase
0 the quick brown fox
1 jack jill went up the hill
请注意,它的“棕色”中的br
不会保留在df
中,而是一个较大单词的一部分,而是会自动删除“ br”。
我尝试过:
df['phrase']=[re.sub(r"\b%remove\b", "", sent) for sent in df['phrase']]
但是无法使其正常工作。有人可以指导我正确的方向吗?
谢谢
答案 0 :(得分:3)
对split
使用嵌套列表推导,对in
使用tes成员身份,然后将拆分后的值重新加入:
L = ['br', 'and']
df['phrase']=[' '.join(x for x in sent.split() if x not in L) for sent in df['phrase']]
print (df)
phrase
0 the quick brown fox
1 jack jill went up the hill
答案 1 :(得分:1)
我觉得replace
会降低
s=[r'\b'+x+r'\b' for x in L]
df.phrase.str.replace('|'.join(s),'')
Out[176]:
0 the quick brown fox
1 jack jill went up the hill
Name: phrase, dtype: object