文档章节

Pandas 文本数据方法 extract( ) extractall( )

C
 Claroja
发布于 2017/05/08 23:21
字数 507
阅读 45
收藏 0

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

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

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

#如果提取的规则结果有多组,则会返回数据框,不匹配的返回NaN
In [32]: pd.Series(['a1', 'b2', 'c3']).str.extract('([ab])(\d)', expand=False)
Out[32]: 
     0    1
0    a    1
1    b    2
2  NaN  NaN
#注意正则表达式中的任何捕获组名称将用于列名,否则捕获的组名将被当作列名
In [33]: pd.Series(['a1', 'b2', 'c3']).str.extract('(?P<letter>[ab])(?P<digit>\d)', expand=False)
Out[33]: 
  letter digit
0      a     1
1      b     2
2    NaN   NaN
#参数expand=True在一组返回值的情况下,返回数据框
In [35]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=True)
Out[35]: 
     0
0    1
1    2
2  NaN
#参数expand=False在一组返回值的情况下,返回序列(Series)
In [36]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=False)
Out[36]: 
0      1
1      2
2    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]: 
  letter
0      A
1      B
2      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    DataFrame
5.
#提取所有匹配的字符串
#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     1
B      b     1
C      c     1
#extractall将匹配所有返回的字符
In [46]: s.str.extractall(two_groups)
Out[46]: 
        letter digit
  match             
A 0          a     1
  1          a     2
B 0          b     1
C 0          c     1

© 著作权归作者所有

共有 人打赏支持
C
粉丝 0
博文 128
码字总数 44892
作品 0
南京
python3.2中zipfile解压缩,文件名里的中文为乱码

各位大拿好,最近使用python3.2中的zipfile解压.zip文件,解压完成后,发现文件名里的中文为乱码,请教各位解决方法,多谢了。 def unrarall(zipfilename,outputdir,*unrarfilters): zip=zip...

Python菜鸟
2015/06/04
1K
0
Python黑客编程2 入门demo--zip暴力破解

Python黑客编程2 入门demo--zip暴力破解 上一篇文章,我们在Kali Linux中搭建了基本的Python开发环境,本篇文章为了拉近Python和大家的距离,我们写一个暴力破解zip包密码的小程序。这个例子...

zting科技
2017/01/11
0
0
Pandas系列4-数据矢量化

问题 我们在处理数据问题时,经常会遇到的问题是要将原有数据进行转化,比如在原有数据的基础上+1操作,或者将原有数据的字符串全部转化为小写字符,更复杂的是要将原有数据的一部分提取出来...

geekpy
06/21
0
0
Python抓取网页数据的终极办法

假设你在网上搜索某个项目所需的原始数据,但坏消息是数据存在于网页中,并且没有可用于获取原始数据的API。 所以现在你必须浪费30分钟写脚本来获取数据(最后花费 2小时)。 这不难但是很浪...

实验楼
06/07
0
0
import pandas 使用方法

对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重要的Python包。它不仅提供了很多方法,使得数据处理非常简单,同时在数据处理速度上也做了很多优化,使得和Python内置方...

csdnhuaong
05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

springmvc入门之映射处理器(一)

1.简析映射处理器 在spring mvc中,使用映射处理器可以把web请求映射到正确的处理器上,spring内置了很多映射处理器,而且我们也可以自定义映射处理器。下面的实例展示spring中最常用的两个映...

明理萝
5分钟前
1
1
一个破碎的人,窃机浪漫飞行后自由坠毁

简评:A sick man who needs treatment 29 岁的 Richard Russell 是西雅图机场地勤人员,上周五,在刚进入秋天的日子,他偷了一架未载客的飞机,在空中飞行独自超过一小时,甚至驾机在空中翻...

极光推送
7分钟前
0
0
linux一次性解压多个.gz或者.tar.gz文件

解压多个压缩包 对于解压多个.gz文件的,用此命令: for gz in *.gz; do gunzip $gz; done 对于解压多个.tar.gz文件的,用下面命令: for tar in *.tar.gz; do tar xvf $tar; done...

小兔纸乖乖
18分钟前
0
0
bower 安装包的使用

一,bower是什么? bower是一种包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。 它依赖于node.js和npm,如果要使用它需要先安装node.js和npm,因为node.js包含n...

nsns
20分钟前
0
0
EXCEL简易的进度条

在进度栏非常简单的进度控制,以下知道程序是否已完成。 Dim x As IntegerDim MyTimer As Double'Change this loop as needed.For x = 1 To 50' Do stuffApplication.StatusBar = ...

tedzheng
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部