pandas.Series.str.extract¶
-
Series.str.
extract
(pat, flags=0, expand=None)[source]¶ 对于系列中的每个主题字符串,从正则表达式pat的第一个匹配中提取组。
版本0.13.0中的新功能。
参数: pat:string
捕获组的正则表达式模式
标志:int,default 0(无标志)
重新标记模块。 reignignecase
.. versionadded :: 0.18.0
展开:bool,default False
- 如果为True,则返回DataFrame。
- 如果为False,返回Series / Index / DataFrame。
返回: DataFrame,每个主题字符串一行,一个列
每组。正则表达式pat中的任何捕获组名称
用于列名称;否则捕获组数将为
用过的。每个结果列的dtype始终是对象,即使在什么时候
未找到匹配项。如果expand = False并且pat只有一个捕获组,
然后返回一个系列(如果主题是一个系列)或索引(如果主题
是索引)。
也可以看看
extractall
- 返回所有匹配项(不仅仅是第一个匹配项)
例子
具有两个组的模式将返回具有两列的DataFrame。不匹配将是NaN。
>>> s = Series(['a1', 'b2', 'c3']) >>> s.str.extract('([ab])(\d)') 0 1 0 a 1 1 b 2 2 NaN NaN
模式可以包含可选组。
>>> s.str.extract('([ab])?(\d)') 0 1 0 a 1 1 b 2 2 NaN 3
命名组将成为结果中的列名。
>>> s.str.extract('(?P<letter>[ab])(?P<digit>\d)') letter digit 0 a 1 1 b 2 2 NaN NaN
如果expand = True,则带有一个组的模式将返回一个带有一列的DataFrame。
>>> s.str.extract('[ab](\d)', expand=True) 0 0 1 1 2 2 NaN
如果expand = False,则具有一个组的模式将返回一个Series。
>>> s.str.extract('[ab](\d)', expand=False) 0 1 1 2 2 NaN dtype: object