如何找到列表中的单词并删除找到的单词后的其他单词?
例如:
remove_words = ['stack', 'over', 'flow']
输入:
0 abc test test stack yxz
1 cde test12 over ste
2 def123 flow test123
3 yup over 4562
想从pandas数据框列的列表remove_words列表中找到单词,然后删除这些单词以及之后的所有单词。
结果:
0 abc test test
1 cde test12
2 def123
3 yup
答案 0 :(得分:2)
将split
与|
的所有联接值一起用于正则表达式OR
,并选择list
的前str[0]
个:
remove_words = ['stack', 'over', 'flow']
#for more general solution with word boundary
pat = r'\b{}\b'.format('|'.join(remove_words))
df['col'] = df['col'].str.split(pat, n=1).str[0]
print (df)
col
0 abc test test
1 cde test12
2 def123
3 yup
答案 1 :(得分:0)
第一步是检查输入中是否有值,如果没有,则可以返回整个输入
if "stack" or "over" or "flow" not in input:
return input
现在是移除部分。我认为最好的方法是遍历输入数组中的每个值(我假设它是一个数组)并调用str_replace
答案 2 :(得分:0)
我还没有用pandas数据框编写数据,但是音乐会在任何语言中都应该是相同的,只是循环遍历所有单词并使用带有空字符串的replace方法。
答案 3 :(得分:0)
remove_words = ['stack', 'over', 'flow']
inputline = "abc test test stack yxz"
for word in inputline.split(" "):
if word in remove_words:
print(inputline[:test.index(word)])
这会将输入的字符串拆分为一个列表,然后在remove_words列表中找到任何单词的索引,并将列表的其余部分切掉。只需要做一个循环来替换整个数据集的硬核字符串即可。