Удаление слова из ряда строк панды с помощью регулярных выражений - PullRequest
1 голос
/ 02 апреля 2020

Предположим, у меня есть следующие pandas серии:

x = pd.Series(['box abcd', 'abcd box abcd', 'abcd box', 'abcdboxabcd'])

И я хочу удалить все вхождения поля слова (обратите внимание, что я не хочу удалять все вхождения поля подстроки ), Я сделал это так:

x.apply(lambda x: ' '.join([w for w in x.split(' ') if w != 'box']))

Что дает мне то, что я ожидал:

0           abcd
1      abcd abcd
2           abcd
3    abcdboxabcd
dtype: object

Я хотел бы знать, есть ли способ сделать это с помощью регулярных выражений, например:

x.str.replace(regex, '')

Где регулярное выражение - это регулярное выражение, совпадающее с полем для слова, я много искал о регулярном выражении, но не могу найти ответ, возможно ли это? Или такого регулярного выражения не существует?

1 Ответ

1 голос
/ 02 апреля 2020

Требуется \b, указывающий на разделение слов, а затем лишние пробелы:

x.str.replace(r'\b(\s?box\s?)\b', ' ').str.strip()

Вывод:

0           abcd
1      abcd abcd
2           abcd
3    abcdboxabcd
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...