Spec-Zone.ru › pandas 2

pandas.Series.str.extractall

Series.str.extractall(pat, flags=0)[source]

Извлечение групп захвата в регулярном выражении pat в качестве столбцов в DataFrame.

Для каждой строки-подстроки в Series извлекаются группы из всех совпадений регулярного выражения pat. Когда каждая строка-подстрока в Series имеет ровно одно совпадение, extractall(pat).xs(0, level=’match’) эквивалентно extract(pat).

Параметры:
pat:str

Шаблон регулярного выражения с группами захвата.

flags:int, по умолчанию 0 (без флагов)

Флаг модуля re, например re.IGNORECASE. Они позволяют изменять соответствие регулярному выражению для таких вещей, как регистр, пробелы и т. д. Несколько флагов можно комбинировать с оператором поразрядного ИЛИ, например re.IGNORECASE | re.MULTILINE.

Возвращаемое значение:
DataFrame

DataFrame с одной строкой для каждого совпадения и одним столбцом для каждой группы. Его строки имеют индекс с первыми уровнями, которые поступают от исходной строки Series. Последний уровень называется ‘match’ и индексирует совпадения в каждом элементе Series. Любые имена групп захвата в регулярном выражении pat будут использованы в качестве имён столбцов; в противном случае будут использованы номера групп захвата.

См. также

extract

Возвращает только первое совпадение (не все совпадения).

Примеры

Шаблон с одной группой вернёт DataFrame с одним столбцом. Индексы без совпадений не будут отображаться в результате.

>>> s = pd.Series(["a1a2", "b1", "c1"], index=["A", "B", "C"])
>>> s.str.extractall(r"[ab](\d)")
        0
match
A 0      1
  1      2
B 0      1

Имена групп захвата используются для имён столбцов результата.

>>> s.str.extractall(r"[ab](?P<digit>\d)")
        digit
match
A 0         1
  1         2
B 0         1

Шаблон с двумя группами вернёт DataFrame с двумя столбцами.

>>> s.str.extractall(r"(?P<letter>[ab])(?P<digit>\d)")
        letter digit
match
A 0          a     1
  1          a     2
B 0          b     1

Необязательные группы, которые не соответствуют, будут NaN в результате.

>>> s.str.extractall(r"(?P<letter>[ab])?(?P<digit>\d)")
        letter digit
match
A 0          a     1
  1          a     2
B 0          b     1
C 0        NaN     1

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.Series.str.extractall.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API