pandas.Series.str.extractall # 系列.str。extractall ( pat , flags = 0 ) [来源] # 将正则表达式pat中的捕获组提取为 DataFrame 中的列。 对于系列中的每个主题字符串,从正则表达式 pat 的所有匹配中提取组。当系列中的每个主题字符串恰好有一个匹配项时,extractall(pat).xs(0, level='match') 与 extract(pat) 相同。 参数: 帕特斯特带有捕获组的正则表达式模式。 flags int,默认0(无标志)模块re标志,例如re.IGNORECASE。这些允许修改正则表达式匹配的大小写、空格等。多个标志可以与按位 OR 运算符组合,例如。re.IGNORECASE | re.MULTILINE 返回: 数据框每场比赛占一行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