Панда разделить строку по соответствующей подстроке из списка - PullRequest
0 голосов
/ 06 марта 2019

Мне не удалось найти ответ на вопрос, как разбить строки в строках, у которых подстроки соответствуют значениям в списке (не является частью фрейма данных). Другими словами, мне нужно разделить / извлечь подстроки, которые соответствуют любому из значений в динамическом списке из строк Series. Есть много ответов о том, как пометить такие строки как True / False или как разбить совпадение на статический список, но я застрял при попытке объединить обе задачи в одну. Любая помощь будет принята с благодарностью.

Пример: Серия - Мистер Джон Доу, Мисс Джейн Смит, Доктор Кто, Доктор Нет, Доктор Дулиттл, Мистер Икс, Бэтмен Список 1 - Доктор, Доктор

Результат - Мистер Джон Доу, Мисс Джейн Смит, Кто, Нет, Дулиттл, Мистер Икс, Бэтмен

Список 2 - Мистер, Мистер

Выходные данные - Джон Доу, мисс Джейн Смит, доктор Кто, доктор Нет, доктор Дулиттл, Х, Бэтмен

1 Ответ

0 голосов
/ 06 марта 2019
s = pd.Series('Mr. John Doe, Ms. Jane Smith, Dr. Who, Dr. No, Doctor Doolittle, Mister X, Batman'.split(', '))
l = ['Dr. ', 'Doctor ']
list(s.str.replace('({})'.format('|'.join(l)), ''))

Out:
['Mr. John Doe',
 'Ms. Jane Smith',
 'Who',
 'No',
 'Doolittle',
 'Mister X',
 'Batman']
l = ['Mr. ', 'Mister ']
list(s.str.replace('({})'.format('|'.join(l)), ''))

Out:
['John Doe',
 'Ms. Jane Smith',
 'Dr. Who',
 'Dr. No',
 'Doctor Doolittle',
 'X',
 'Batman']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...