pandas.Series.str.extractall
-
Series.str.extractall(pat, flags=0)[source] -
Для каждой строки-объекта в серии извлекаются группы из всех совпадений регулярного выражения pat. Когда каждая строка-объект в серии имеет ровно одно совпадение, extractall(pat).xs(0, level=’match’) эквивалентно extract(pat).
Добавлена в версии 0.18.0.
Параметры: pat : строка
Шаблон регулярного выражения с захватывающими группами
flags : int, по умолчанию 0 (без флагов)
Флаги модуля re, например, re.IGNORECASE
Возвращает: DataFrame с одной строкой для каждого совпадения и одним столбцом для каждой
группы. Его строки имеют многоуровневый индекс с первыми уровнями, которые берутся
из исходной серии. Последний уровень называется ‘match’ и указывает
порядок в исходной серии. Любые имена захватывающих групп в регулярном
выражении pat будут использоваться для имён столбцов; в противном случае будут использоваться номера захватывающих групп.
См. также
-
extract - возвращает только первое совпадение (не все совпадения)
Примеры
Шаблон с одной группой вернет DataFrame с одним столбцом. Индексы без совпадений не будут отображаться в результате.
>>> s = Series(["a1a2", "b1", "c1"], index=["A", "B", "C"]) >>> s.str.extractall("[ab](\d)") 0 match A 0 1 1 2 B 0 1Имена захватывающих групп используются в качестве имён столбцов результата.
>>> s.str.extractall("[ab](?P<digit>\d)") digit match A 0 1 1 2 B 0 1Шаблон с двумя группами вернет DataFrame с двумя столбцами.
>>> s.str.extractall("(?P<letter>[ab])(?P<digit>\d)") letter digit match A 0 a 1 1 a 2 B 0 b 1Дополнительные группы, которые не совпадают, в результате будут NaN.
>>> s.str.extractall("(?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–2012, 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/0.19.2/generated/pandas.Series.str.extractall.html