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


Python Pandas Series str extract方法用法及代码示例


Pandas 系列str.extract(~)提取出第一的使用正则表达式匹配子字符串。

注意

要提取所有匹配项而不仅仅是第一个匹配项,请使用 str.extractall(~)

参数

1. pat | str

要匹配的正则表达式。

2. flags | int | optional

re 库设置的标志(例如 re.IGNORECASE )。可以通过将多个标志与按位 | 组合来设置它们(例如 re.IGNORECASE | re.MULTILINE )。

3. expand | boolean | optional

  • 如果是 True ,则具有一组的模式将返回 DataFrame。

  • 如果 False ,则具有一组的模式将返回 SeriesIndex

默认情况下,expand=True

返回值

  • 如果 expand=True ,则返回 DataFrame。

  • 如果 expand=False ,则具有一组的模式将返回 SeriesIndex

  • 如果有多个捕获组,则无论 expand 是什么,都会返回 DataFrame 。

例子

基本用法

考虑以下 DataFrame :

import pandas as pd
df = pd.DataFrame({'A':['a1','b2','c3']})
df



   A
0  a1
1  b2
2  c3

要获取与给定正则表达式匹配的提取子字符串:

df['A'].str.extract('[ab](\d+)')



   0
0  1
1  2
2  NaN

这里,[ab]表示ab\d+表示数字。我们使用()来指示我们要提取的部分。

多个捕获组

我们可以使用多个括号捕获多个组,如下所示:

df['A'].str.extract('([ab])(\d+)')   # returns a DataFrame



   0    1
0  a    1
1  b    2
2  NaN  NaN

设置展开

考虑以下 DataFrame :

import pandas as pd
df = pd.DataFrame({'A':['a1','b2','c3']})
df



   A
0  a1
1  b2
2  c3

默认情况下, expand=True ,这意味着即使只有一个捕获组,也会返回 DataFrame :

df['A'].str.extract('[ab](\d+)')   # expand=True



   0
0  1
1  2
2  NaN

要获取系列(或索引),请设置 expand=False

df['A'].str.extract('[ab](\d+)', expand=False)



0      1
1      2
2    NaN
Name: A, dtype: object

相关用法


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