mars.dataframe.Series.str.extract#
- Series.str.extract(pat: 字符串, flags: 整型 = 0, expand: 布尔型 = True) FrameOrSeriesUnion | 索引#
将正则表达式pat中的捕获组提取为DataFrame中的列。
对于Series中的每个主题字符串,从正则表达式pat的第一个匹配中提取组。
- Parameters
- Returns
每个主题字符串有一行的 DataFrame,每个组有一列。正则表达式 pat 中的任何捕获组名称将用作列名;否则将使用捕获组编号。每个结果列的 dtype 始终是对象,即使没有找到匹配。如果
expand=False且 pat 只有一个捕获组,则返回 Series(如果主题是 Series)或 Index(如果主题是 Index)。- Return type
另请参阅
extractall返回所有匹配项(不仅仅是第一个匹配)。
示例
一个具有两个组的模式将返回一个包含两列的DataFrame。非匹配项将显示为NaN。
>>> import mars.dataframe as md >>> s = md.Series(['a1', 'b2', 'c3']) >>> s.str.extract(r'([ab])(\d)').execute() 0 1 0 a 1 1 b 2 2 NaN NaN
一个模式可以包含可选组。
>>> s.str.extract(r'([ab])?(\d)').execute() 0 1 0 a 1 1 b 2 2 NaN 3
命名组将成为结果中的列名。
>>> s.str.extract(r'(?P<letter>[ab])(?P<digit>\d)').execute() letter digit 0 a 1 1 b 2 2 NaN NaN
如果expand=True,包含一个组的模式将返回一个包含一列的DataFrame。
>>> s.str.extract(r'[ab](\d)', expand=True).execute() 0 0 1 1 2 2 NaN
如果expand=False,包含一个组的模式将返回一个Series。
>>> s.str.extract(r'[ab](\d)', expand=False).execute() 0 1 1 2 2 NaN dtype: object