pandas.Series.str.extractall#

Series.str.extractall(pat, flags=0)[源代码]#

在正则表达式中提取捕获组 pat 作为DataFrame中的列。

对于系列中的每个主题字符串,从正则表达式PAT的所有匹配项中提取组。当系列中的每个主题字符串恰好有一个匹配时,ExtTall(Pat).xs(0,Level=‘Match’)与提取(Pat)相同。

参数
pat应力

具有捕获组的正则表达式模式。

flagsInt,默认为0(无标志)

A re 模块标志,例如 re.IGNORECASE 。它们允许修改与大小写、空格等匹配的正则表达式。例如,可以将多个标志与按位OR运算符组合 re.IGNORECASE | re.MULTILINE

退货
DataFrame

A DataFrame 每一场比赛一行,每组一列。它的行有一个 MultiIndex 第一层次来自于主体 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