pandas.Series.str.extractall¶
-
Series.str.
extractall
(pat, flags=0)[source]¶ 对于系列中的每个主题字符串,从正则表达式pat的所有匹配中提取组。当系列中的每个主题字符串完全匹配一个时,extractall(pat).xs(0,level ='match')与extract(pat)相同。
版本0.18.0中的新功能。
参数: pat:string
捕获组的正则表达式模式
标志:int,default 0(无标志)
重新标记模块。 reignignecase
返回: 一个DataFrame,每个匹配一行,每个匹配一列
组。它的行有一个MultiIndex与第一级来自
主题系列。最后一个级别命名为“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