用法:
Series.str.extractall(pat, flags=0)
将正则表达式
pat
中的捕获组提取为 DataFrame 中的列。对于系列中的每个主题字符串,从正则表达式 pat 的所有匹配项中提取组。当 Series 中的每个主题字符串都只有一个匹配项时,extractall(pat).xs(0, level='match') 与 extract(pat) 相同。
- pat:str
带有捕获组的正则表达式模式。
- flags:int,默认 0(无标志)
re
模块标志,例如re.IGNORECASE
。这些允许修改大小写、空格等的正则表达式匹配。多个标志可以与按位或运算符组合,例如re.IGNORECASE | re.MULTILINE
。
- DataFrame
DataFrame
,每场比赛一行,每组一列。它的行有一个MultiIndex
,第一层来自主题Series
。最后一个级别命名为 ‘match’ 并索引Series
的每个项目中的匹配项。正则表达式 pat 中的任何捕获组名称都将用于列名称;否则将使用捕获组编号。
参数:
返回:
例子:
具有一组的模式将返回具有一列的 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
相关用法
- Python pandas.Series.str.extract用法及代码示例
- Python pandas.Series.str.endswith用法及代码示例
- Python pandas.Series.str.isdecimal用法及代码示例
- Python pandas.Series.str.get用法及代码示例
- Python pandas.Series.str.replace用法及代码示例
- Python pandas.Series.str.isspace用法及代码示例
- Python pandas.Series.str.isdigit用法及代码示例
- Python pandas.Series.str.wrap用法及代码示例
- Python pandas.Series.str.isalnum用法及代码示例
- Python pandas.Series.str.zfill用法及代码示例
- Python pandas.Series.str.partition用法及代码示例
- Python pandas.Series.str.isnumeric用法及代码示例
- Python pandas.Series.str.startswith用法及代码示例
- Python pandas.Series.str.count用法及代码示例
- Python pandas.Series.str.rpartition用法及代码示例
- Python pandas.Series.str.strip用法及代码示例
- Python pandas.Series.str.removesuffix用法及代码示例
- Python pandas.Series.str.rsplit用法及代码示例
- Python pandas.Series.str.islower用法及代码示例
- Python pandas.Series.str.removeprefix用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Series.str.extractall。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。