dask.dataframe.Series.str.extract

dask.dataframe.Series.str.extract

dataframe.Series.str.extract(*args, **kwargs)

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

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

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

对于Series中的每个主题字符串,从正则表达式 pat 的第一个匹配中提取组。

参数
patstr (Dask 中不支持)

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

标志int, 默认 0 (无标志) (Dask 不支持)

re 模块中的标志,例如 re.IGNORECASE,它们修改正则表达式匹配,如大小写、空格等。更多详情,请参见 re

展开bool, 默认 True (Dask 不支持)

如果为 True,返回一个 DataFrame,每个捕获组对应一列。如果为 False,如果只有一个捕获组则返回 Series/Index,如果有多个捕获组则返回 DataFrame。

返回
DataFrame 或 Series 或 Index

每个主题字符串一行,每个组一列的 DataFrame。正则表达式 pat 中的任何捕获组名称将用作列名;否则将使用捕获组编号。每个结果列的 dtype 始终为对象,即使找不到匹配项也是如此。如果 expand=False 且 pat 只有一个捕获组,则返回一个 Series(如果 subject 是 Series)或 Index(如果 subject 是 Index)。

参见

extractall

返回所有匹配项(不仅仅是第一个匹配项)。

示例

包含两个组的模式将返回一个包含两列的DataFrame。不匹配的部分将为NaN。

>>> s = pd.Series(['a1', 'b2', 'c3'])  
>>> s.str.extract(r'([ab])(\d)')  
    0    1
0    a    1
1    b    2
2  NaN  NaN

模式可能包含可选组。

>>> s.str.extract(r'([ab])?(\d)')  
    0  1
0    a  1
1    b  2
2  NaN  3

命名组将成为结果中的列名。

>>> s.str.extract(r'(?P<letter>[ab])(?P<digit>\d)')  
letter digit
0      a     1
1      b     2
2    NaN   NaN

如果 expand=True,一个带有一个组的模式将返回一个包含一列的 DataFrame。

>>> s.str.extract(r'[ab](\d)', expand=True)  
    0
0    1
1    2
2  NaN

如果 expand=False,一个带有一个组的模式将返回一个 Series。

>>> s.str.extract(r'[ab](\d)', expand=False)  
0      1
1      2
2    NaN
dtype: object