Простой совет: простое пространство (или невидимый специальный символ) в вашем скрипте, прямо перед самым первым тегом <?php
, может вызвать это! Особенно, когда вы работаете в команде, а кто-то использует «слабую» IDE или перепутал файлы со странными текстовыми редакторами.
Я видел эти вещи;)
Используйте split
всеми связанными значениями |
для regex OR
и выберите сначала list
s на 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
Я не писал в pandas dataframe, но концерт должен быть одним и тем же на любом языке, просто перебирать все слова и использовать метод replace с пустой строкой.
Первым шагом было бы проверить, имеет ли вход значение в нем, если нет, вы можете просто вернуть весь вход
if "stack" or "over" or "flow" not in input:
return input
Теперь для удаления части. Я думаю, что лучший способ сделать это - перебрать каждое значение во входном массиве (я предполагаю, что это массив) и вызвать str_replace
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 и вырезает остальную часть списка. Просто нужно сделать цикл, чтобы заменить строку хардкора для всего набора данных.