Python的文本数据提取extract()及正则表达式
目录
- 字符提取实例
- extract解释
- 正则表达式介绍
字符提取实例
在参考:https://blog.csdn.net/Koala_Tree/article/details/78725881
该文章时,发现里面对字符串的提取用到了extract函数
提取过程如下所示:
这是原本的字符串,要将称号Mr、Mrs、Miss等提取出来
代码如下所示:
train_data['Title'] = train_data['Name'].str.extract(' ([A-Za-z]+)\.', expand=False)
提取结果:
该提取使用了extract函数以及正则表达式,
所以我分别介绍一下该函数的使用以及正则表达式
extract解释
在python的帮助中查找其详细介绍:
Series.str.extract
- 这是该函数用法的英文解释:
- Extract capture groups in the regex pat as columns in a DataFrame.
- For each subject string in the Series, extract groups from the first match of regular expression pat.
- 将正则表达式中的提取为数据框中的列。 对于系列中的每个主题字符串,从正则表达式的第一个匹配中提取组。
参数 | 解释 |
---|---|
pat | 字符串 / 正则表达式 |
flags | int型,默认为0(无标志)。 来自re模块的标志,例如re.IGNORECASE,修改正则表达式匹配,如大小写、空格等。有关更多详细信息,请参见 re |
expand | 布尔值,默认为真。 如果为真,则返回每个捕获组有一列的数据框。如果为假,如果有一个捕获组,则返回序列/索引;如果有捕获组,则返回数据框。 |
- python的help中的例子
剩下的例子可以直接通过help来查看该函数的用法以及举例
>>>s = pd.Series(['a1', 'b2', 'c3'])
>>>s.str.extract(r'([ab])(\d)')
'''
该语句的含义也就是从字母a,b中找出对应字符的字母,并分割开来
所以得到一下结果,但没有c,所以结果c那里就是NaN
'''
#结果:0 1
0 a 1
1 b 2
2 NaN NaN>>>s.str.extract(r'([ab])?(\d)')
'''
?表示匹配前面的子表达式零次或一次。例如,"do(es)?"
可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do"
'''0 1
0 a 1
1 b 2
2 NaN 3
正则表达式介绍
- 关于捕获组
捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。
捕获组有两种形式,一种是普通捕获组,另一种是命名捕获组,通常所说的捕获组指的是普通捕获组。语法如下:
普通捕获组:(Expression)
命名捕获组:(?Expression)
另外需要说明的一点是,除(Expression)和(?Expression)语法外,其它的(?..)语法都不是捕获组。、
- 正则表达式
示例:
示例解释 |
---|
^为匹配输入字符串的开始位置。 |
[0-9]+ 匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。 |
abc$ 匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。 |
- 关于上述姓名提取字符的正则表达式的解释:
再展示一下姓名数据的样子:
' ([A-Za-z]+)\.'
为了提取Mr,可以看到Mr前面有空格,且从大写字母开始再到小写字母 。
所以该正则表达式也是类似:先空了一格,从大写字母A-Z中匹配,再从小写字母a-z中匹配, 到 .(点)这里结束。
\表示转义,在正则表达式中点(.)表示:匹配除换行符 \n 之外的任何单字符。若要直接使用则需要加上转义符号
另编写两行简单的代码实现如下:
'''
提取Mi,Xr,可以看到该提取字符前面没有空格了,所以将正则表达式稍作
修改删除空格,即可得到需要的效果
'''
improt pandas as pd
x=['Aaa,Mi.mmmki','Aaa,Xr.mmmki']
x=pd.DataFrame(x)
x[1]=x[0].str.extract('([A-Za-z]+)\.')
下图可以看到第一列为提取前,第二列为提取后的样子
参考的文章:
有关正则表达式的详细介绍,关于语法等,请参考该篇文献
https://www.runoob.com/regexp/regexp-syntax.html
有关正则捕获组的相应介绍,请参考该篇文献
https://www.cnblogs.com/luckcs/articles/2212976.html
Python的文本数据提取extract()及正则表达式相关推荐
- lda 可以处理中文_用python处理文本数据
用python处理文本数据 Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理--文本相似度比较. 谈起python的自然语言处理,肯定会让人想起NLTK.不过上面 ...
- python中数据用折线图表示_用python处理文本数据
用python处理文本数据 Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理--文本相似度比较. 谈起python的自然语言处理,肯定会让人想起NLTK.不过上面 ...
- 使用Python清洗文本数据
点击关注我哦 一篇文章带你了解使用Python清洗文本数据 数据格式并不总是表格格式.随着我们进入大数据时代,数据具有相当多样化的格式,包括图像,文本,图形等. 由于格式非常多样,从一种数据到另一种数 ...
- python将excel数据提取到word
python将excel数据提取到word 工作中可能需要将excel中的数据批量生成word,今天分享将excel数据提取,然后生成word数据的方法. 先看要求,将当前目录下(定值回执统计表.xl ...
- Excel怎么将加粗文本数据提取出来
今天跟大家分享一下Excel怎么将加粗文本数据提取出来 1.如下图数据中部分文本为加粗字体,现在我们想要将这些加粗文本提取出来. 2.首先我们选中数据单元格区域 3.然后点击下图选项(Excel工具箱 ...
- 用Python 处理文本数据
用Python 处理文本数据 前言 HI,好久不见,今天是关闭朋友圈的第60天,我是野蛮成长的AC-Asteroid. 人生苦短,我用Python,通过短短两周时间自学,从基础知识到项目实践, ...
- python读取文本数据绘制曲线图
目录 写在前面 代码 reference 写在前面 1.本文内容 python读取文本数据曲线图 2.转载请注明出处: https://blog.csdn.net/qq_41102371/articl ...
- 用python处理文本数据,并删除处理之后的数据(Python经典编程案例)
用python处理文本数据,并删除处理之后的数据: # 根据条件把一个文本分成两个文本 # with open(r'list_object.txt', 'r') as file: # lines = ...
- python清洗文本数据_02.数据预处理之清洗文本信息
准备30万条新闻数据 编号 新闻类别 新闻数量(条) 1 财经 37098 2 教育 41963 3 科技 65534 4 时政 63086 5 体育 65534 6 娱乐 65534 yield生成 ...
最新文章
- 《数学之美》第3章 统计语言模型
- mysql语句导出数据库文件_通过Mysql命令行语句来导入、导出数据库文件
- 总结(5)--- Numpy和Pandas库常用函数
- python:生成器
- 【工业互联网】自适应的工业生态系统
- 5G NR的调制方式与解调算法
- 机器学习 (十三) 电商O2O优惠券使用预测-1
- 推荐几个后台管理界面
- C语言实现逆波兰表示法(栈)
- CMD打开Git Bash
- GNN手写字体识别java_深度之眼Paper带读笔记GNN.09.GGNN
- 工商总局网监司给阿里发白皮书?一块神奇的里程碑
- kubernetes中metrics-server与HPA
- 网络购物属于计算机应用中的,2019年12月网络教育统考《计算机应用基础》复习题(六)...
- 头文件和库文件区别,动态库和静态库的区别,动静态库的生成
- 在Android平台启动Linux C/C++应用程序
- ModStartBlog 现代化个人博客系统 v5.2.0 源码下载
- 估值超400亿美元的京东物流,已成顺丰最有力的竞争对手
- 【超硬核】还不知道怎么入门算法?这篇双指针让你吃到饱【力扣真题】+【算法图解】
- 选股公式blog+节选