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