Работая с набором текстовых данных, у меня есть извлечение, которое дает мне нерегулярные результаты в кадре данных.Я не очень хорошо разбираюсь в регулярных выражениях и никогда не пробовал фильтровать их, поэтому помощь была бы полезна.
Я пытаюсь отфильтровать столбец a для строк 4 и 6. Шаблон состоит из 4 цифр, буквы,пробел, / пробел, 2 числа, пробел, /, пробел, 5 чисел, пробел, /, затем все, что следует.
Фрейм данных выглядит следующим образом:
a b c d
0 1234B:Program Name / Title Chapter Page Number ID Code
1 1234B:Program Name / Title Chapter Page Number ID Code
2 1234B:Program Name / Title Chapter Page Number ID Code
3 1234B / 01 / 2 (blank) (blank) ID Code
4 1234B / 01 / 23456 / Title Chapter Page Number ID Code <---- Filter for this
5 1234B / 01 / 2 (blank) (blank) ID Code
6 1234B / 01 / 23456 / Title Chapter Page Number ID Code <---- Filter for this
У меня естьпробовал следующий код:
# Filter by pattern
import pandas as pd
import numpy as np
import re
pattern = re.compile("[0-9][0-9][0-9][0-9][B][\s][/][\s][0-9][0-9][\s][/][\s][0-9][0-9][0-9][0-9][0-9][\s]+[/]")
df = df[df['a'].apply(pattern)]
Результатом является Ошибка типа: объект '_sre.SRE_Pattern' не вызывается.Похоже, я применяю это неправильно.Также мое регулярное выражение не имеет подстановочного знака для учета остальных данных в столбце а.Как питонный способ фильтровать столбец A, чтобы посмотреть на первые 20 символов в столбце A и сопоставить его с шаблоном?