當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。