Найти конкретный формат в Pandas Dataframe Cell - PullRequest
2 голосов
/ 05 февраля 2020

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

Index    Column A
0        abcd
1        abc_1
2        abc_xy
3        abc_12
4        zabc_12

Как я могу go найти ячейки, которые соответствуют формату: ' abc_ + number ', чтобы были найдены значения в индексах 1 и 3.
До сих пор я знаю, как я могу искать 'abc_' или цифру c часть ячейки, используя регулярное выражение:

re.match('abc_', df['Column A'])

Но я не уверен, как искать полный шаблон. Любая помощь будет оценена, спасибо!

1 Ответ

4 голосов
/ 05 февраля 2020

Вы можете использовать Series.str.contains:

df['Column A'].str.contains(r'^abc_\d')

Или, если этот шаблон должен соответствовать всей строке

df['Column A'].str.contains(r'^abc_\d+$')

Обратите внимание, что по умолчанию pat аргумент рассматривается как регулярное выражение, поэтому вам не нужно использовать regex=True. Вы можете использовать аргумент na, чтобы определить значение заполнения для пропущенных значений.

Детали шаблона

  • ^ - начало строки (вам нужно здесь str.contains использует re.search, а не re.match и, таким образом, не привязывает совпадение в начале строки)
  • abc_ - литеральная подстрока
  • \d+ - 1+ цифр
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...