当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.Series.str.extract用法及代码示例


用法:

Series.str.extract(pat, flags=0, expand=True)

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

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

参数

patstr

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

flagsint,默认 0(无标志)

re 模块中的标志,例如re.IGNORECASE ,用于修改大小写、空格等内容的正则表达式匹配。有关更多详细信息,请参阅 re

expand布尔值,默认为真

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

返回

DataFrame 或 Series 或 Index

一个 DataFrame,每个主题字符串一行,每组一列。正则表达式 pat 中的任何捕获组名称都将用于列名称;否则将使用捕获组编号。每个结果列的 dtype 始终是 object,即使没有找到匹配项。如果expand=False 并且 pat 只有一个捕获组,则返回一个系列(如果主题是系列)或索引(如果主题是索引)。

例子

具有两组的模式将返回具有两列的 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,一组模式将返回一个系列。

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Series.str.extract。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。