温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Pandas中extract( ) 和extractall( ) 方法如何使用

发布时间:2021-08-11 14:26:29 来源:亿速云 阅读:326 作者:Leah 栏目:云计算

Pandas中extract( ) 和extractall( ) 方法如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Series.str.extract(pat, flags=0, expand=None)

参数:
pat : 字符串或正则表达式
flags : 整型,
expand : 布尔型,是否返回数据框
Returns:
数据框dataframe/索引index

Series.str.extractall(pat, flags=0)
参数:
pat : 字符串或正则表达式
flags : 整型
返回值:
DataFrame(数据框)

#如果提取的规则结果有多组,则会返回数据框,不匹配的返回NaNIn [32]: pd.Series(['a1', 'b2', 'c3']).str.extract('([ab])(\d)', expand=False)
Out[32]: 
     0    10    a    11    b    22  NaN  NaN#注意正则表达式中的任何捕获组名称将用于列名,否则捕获的组名将被当作列名In [33]: pd.Series(['a1', 'b2', 'c3']).str.extract('(?P<letter>[ab])(?P<digit>\d)', expand=False)
Out[33]: 
  letter digit0      a     11      b     22    NaN   NaN#参数expand=True在一组返回值的情况下,返回数据框In [35]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=True)
Out[35]: 
     00    11    22  NaN#参数expand=False在一组返回值的情况下,返回序列(Series)In [36]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=False)
Out[36]: 
0      11      22    NaN
dtype: object#参数expand=True作用在索引上时,一组数据返回数据框In [37]: s = pd.Series(["a1", "b2", "c3"], ["A11", "B22", "C33"])

In [38]: s
Out[38]: 
A11    a1
B22    b2
C33    c3
dtype: object

In [39]: s.index.str.extract("(?P<letter>[a-zA-Z])", expand=True)
Out[39]: 
  letter0      A1      B2      C#参数expand=False作用在索引上时,一组数据返回索引In [40]: s.index.str.extract("(?P<letter>[a-zA-Z])", expand=False)
Out[40]: Index([u'A', u'B', u'C'], dtype='object', name=u'letter')#下图表示了在expand=False时,各种情况下index,Series返回值的情况 1 group    >1 group
Index      Index    ValueError
Series    Series    DataFrame5.#提取所有匹配的字符串#extract只返回第一个匹配到的字符In [42]: s = pd.Series(["a1a2", "b1", "c1"], index=["A", "B", "C"])
In [43]: s
Out[43]: 
A    a1a2
B      b1
C      c1
dtype: object
In [44]: two_groups = '(?P<letter>[a-z])(?P<digit>[0-9])'In [45]: s.str.extract(two_groups, expand=True)
Out[45]: 
  letter digit
A      a     1B      b     1C      c     1#extractall将匹配所有返回的字符In [46]: s.str.extractall(two_groups)
Out[46]: 
        letter digit
  match             
A 0          a     1
  1          a     2B 0          b     1C 0          c     1

关于 Pandas中extract( ) 和extractall( ) 方法如何使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI