pandas.Series.str.extract#

Series.str.извлечь(шаблон, флаги=0, развернуть=True)[источник]#

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

Для каждой строки-субъекта в Series извлеките группы из первого совпадения регулярного выражения шаблон.

Параметры:
шаблонstr

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

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

Флаги из re модуля, например, re.IGNORECASE, которые изменяют сопоставление регулярных выражений для таких вещей, как регистр, пробелы и т.д. Для подробностей см. re.

развернутьbool, по умолчанию True

Если True, возвращает DataFrame с одним столбцом на группу захвата. Если False, возвращает Series/Index, если есть одна группа захвата, или DataFrame, если есть несколько групп захвата.

Возвращает:
DataFrame или Series или Index

DataFrame с одной строкой для каждой исходной строки и одним столбцом для каждой группы. Любые имена групп захвата в регулярном выражении pat будут использоваться для имён столбцов; в противном случае будут использоваться номера групп захвата. Тип данных каждого результирующего столбца всегда object, даже если совпадение не найдено. Если expand=False и pat имеет только одну группу захвата, тогда вернуть Series (если subject - это Series) или Index (если subject - это Index).

Смотрите также

extractall

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

Примеры

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

>>> s = pd.Series(['a1', 'b2', 'c3'])
>>> s.str.extract(r'([ab])(\d)')
    0    1
0    a    1
1    b    2
2  NaN  NaN

Шаблон может содержать необязательные группы.

>>> s.str.extract(r'([ab])?(\d)')
    0  1
0    a  1
1    b  2
2  NaN  3

Именованные группы станут именами столбцов в результате.

>>> s.str.extract(r'(?P[ab])(?P\d)')
letter digit
0      a     1
1      b     2
2    NaN   NaN

Шаблон с одной группой вернет DataFrame с одним столбцом если expand=True.

>>> s.str.extract(r'[ab](\d)', expand=True)
    0
0    1
1    2
2  NaN

Шаблон с одной группой вернёт Series, если expand=False.

>>> s.str.extract(r'[ab](\d)', expand=False)
0      1
1      2
2    NaN
dtype: object