dask.dataframe.Series.str.extractall

dask.dataframe.Series.str.extractall

dataframe.Series.str.extractall(pat, flags=0)

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

此文档字符串是从 pandas.core.strings.accessor.StringMethods.extractall 复制的。

Dask 版本可能存在一些不一致性。

对于Series中的每个主题字符串,从正则表达式pat的所有匹配项中提取组。当Series中的每个主题字符串恰好有一个匹配项时,extractall(pat).xs(0, level=’match’) 与 extract(pat) 相同。

参数
patstr

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

标志int, 默认值为 0 (无标志)

一个 re 模块标志,例如 re.IGNORECASE。这些标志可以修改正则表达式匹配,例如大小写、空格等。多个标志可以通过按位或运算符组合,例如 re.IGNORECASE | re.MULTILINE

返回
DataFrame

一个 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