фильтровать фрейм данных на основе частичных строковых значений, которые также имеют специальные символы - PullRequest
1 голос
/ 05 августа 2020

Я пытаюсь отфильтровать частичные строки на основе фрейма данных в столбце фрейма данных, которые будут соответствовать списку значений, которые у меня есть в списке.

Проблема в том, что некоторые из совпадающих строк имеют специальные символы в их, например:

=OEAKPOB|2OEAQPYA0402343|@@EAY632|@@EAY6XF3260| LD93684589|4+EB484K|4+EB481W|4*EBEWRX||=OEAKQJW|VNEAKX74

и когда я пытаюсь

pat = '|'.join(criteria_filter['ID'])
df_B = detfile_df[detfile_df['ID'].str.contains(pat)]

, я получаю

error: nothing to repeat

Теперь я предполагаю, что это связано с ошибкой или невозможностью из моего двухстрочного кода выше для работы со специальными символами.

Не могли бы вы помочь, как я могу это исправить?

1 Ответ

1 голос
/ 05 августа 2020

Вы можете экранировать специальные символы регулярного выражения с помощью re.escape в понимании генератора:

import re
pat = '|'.join(re.escape(x) for x in criteria_filter['ID'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...