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


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


Pandas 系列'str.extractall(~)提取物全部使用正则表达式匹配的子字符串。

注意

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

参数

1. pat | str

要匹配的正则表达式。

2. flags | int | optional

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

返回值

多索引 DataFrame。

例子

基本用法

考虑以下 DataFrame :

import pandas as pd
df = pd.DataFrame({'A':['k23','45k','67k89']}, index=['a','b','c'])
df



   A
a  k23
b  45k
c  67k89

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

df['A'].str.extractall('(\d+)')   # returns a multi-index DataFrame



          0
match  
a      0  23
b      0  45
c      0  67
       1  89

这里,输入字符串是一个正则表达式,\d+表示一个数字,而()表示我们要提取的部分。

由于生成的 DataFrame 是一个多索引,因此我们可以获得特定索引的匹配,如下所示:

df_result = df['A'].str.extractall('(\d+)')
df_result.loc['c']



        0
match  
0       67
1       89

多个捕获组

考虑以下 DataFrame :

import pandas as pd
df = pd.DataFrame({'A':['k23','45y','67k89']}, index=['a','b','c'])
df



   A
a  k23
b  45y
c  67k89

我们可以使用多个括号捕获多个组:

df['A'].str.extractall('(\d+)([ky])')



            0   1
    match    
b     0     45  y
c     0     67  k

相关用法


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