Метод findall
Метод findall применяется к Series
через аксессор str и возвращает для каждой
строки список всех непересекающихся совпадений
с заданным регулярным выражением. Результатом
является Series, содержащая списки строк.
Первый параметр pat задаёт шаблон для
поиска. Дополнительные параметры управляют
флагами и настройками регулярного выражения.
Синтаксис
Series.str.findall(pat, flags=0, **kwargs)
Пример
Давайте найдём все цифры в каждой строке серии:
import pandas as pd
ser = pd.Series(['abc123', '456def', '7g8h9i', 'no digits'])
res = ser.str.findall(r'\d')
print(res)
Результат выполнения кода:
0 [1, 2, 3]
1 [4, 5, 6]
2 [7, 8, 9]
3 []
dtype: object
Пример
Давайте найдём все слова, начинающиеся с буквы 'a':
import pandas as pd
ser = pd.Series(['apple and banana', 'apricot cherry', 'grape'])
res = ser.str.findall(r'\ba\w+')
print(res)
Результат выполнения кода:
0 [apple, and]
1 [apricot]
2 []
dtype: object
Пример
Давайте найдём все последовательности из трёх букв, используя флаг игнорирования регистра:
import pandas as pd
import re
ser = pd.Series(['ABC', 'abc', 'Abc', 'abcd'])
res = ser.str.findall(r'[a-z]{3}', flags=re.IGNORECASE)
print(res)
Результат выполнения кода:
0 [ABC]
1 [abc]
2 [Abc]
3 [abc]
dtype: object
Смотрите также
-
метод
extractall,
который извлекает все группы из регулярного выражения -
метод
contains,
который проверяет наличие совпадений в строках -
метод
match,
который проверяет соответствие с начала строки -
метод
extract,
который извлекает первую группу из регулярного выражения