目录

  • 字符提取实例
  • 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()及正则表达式相关推荐

  1. lda 可以处理中文_用python处理文本数据

    用python处理文本数据 Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理--文本相似度比较. 谈起python的自然语言处理,肯定会让人想起NLTK.不过上面 ...

  2. python中数据用折线图表示_用python处理文本数据

    用python处理文本数据 Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理--文本相似度比较. 谈起python的自然语言处理,肯定会让人想起NLTK.不过上面 ...

  3. 使用Python清洗文本数据

    点击关注我哦 一篇文章带你了解使用Python清洗文本数据 数据格式并不总是表格格式.随着我们进入大数据时代,数据具有相当多样化的格式,包括图像,文本,图形等. 由于格式非常多样,从一种数据到另一种数 ...

  4. python将excel数据提取到word

    python将excel数据提取到word 工作中可能需要将excel中的数据批量生成word,今天分享将excel数据提取,然后生成word数据的方法. 先看要求,将当前目录下(定值回执统计表.xl ...

  5. Excel怎么将加粗文本数据提取出来

    今天跟大家分享一下Excel怎么将加粗文本数据提取出来 1.如下图数据中部分文本为加粗字体,现在我们想要将这些加粗文本提取出来. 2.首先我们选中数据单元格区域 3.然后点击下图选项(Excel工具箱 ...

  6. 用Python 处理文本数据

    用Python 处理文本数据 前言   HI,好久不见,今天是关闭朋友圈的第60天,我是野蛮成长的AC-Asteroid.   人生苦短,我用Python,通过短短两周时间自学,从基础知识到项目实践, ...

  7. python读取文本数据绘制曲线图

    目录 写在前面 代码 reference 写在前面 1.本文内容 python读取文本数据曲线图 2.转载请注明出处: https://blog.csdn.net/qq_41102371/articl ...

  8. 用python处理文本数据,并删除处理之后的数据(Python经典编程案例)

    用python处理文本数据,并删除处理之后的数据: # 根据条件把一个文本分成两个文本 # with open(r'list_object.txt', 'r') as file: # lines = ...

  9. python清洗文本数据_02.数据预处理之清洗文本信息

    准备30万条新闻数据 编号 新闻类别 新闻数量(条) 1 财经 37098 2 教育 41963 3 科技 65534 4 时政 63086 5 体育 65534 6 娱乐 65534 yield生成 ...

最新文章

  1. 《数学之美》第3章 统计语言模型
  2. mysql语句导出数据库文件_通过Mysql命令行语句来导入、导出数据库文件
  3. 总结(5)--- Numpy和Pandas库常用函数
  4. python:生成器
  5. 【工业互联网】自适应的工业生态系统
  6. 5G NR的调制方式与解调算法
  7. 机器学习 (十三) 电商O2O优惠券使用预测-1
  8. 推荐几个后台管理界面
  9. C语言实现逆波兰表示法(栈)
  10. CMD打开Git Bash
  11. GNN手写字体识别java_深度之眼Paper带读笔记GNN.09.GGNN
  12. 工商总局网监司给阿里发白皮书?一块神奇的里程碑
  13. kubernetes中metrics-server与HPA
  14. 网络购物属于计算机应用中的,2019年12月网络教育统考《计算机应用基础》复习题(六)...
  15. 头文件和库文件区别,动态库和静态库的区别,动静态库的生成
  16. 在Android平台启动Linux C/C++应用程序
  17. ModStartBlog 现代化个人博客系统 v5.2.0 源码下载
  18. 估值超400亿美元的京东物流,已成顺丰最有力的竞争对手
  19. 【超硬核】还不知道怎么入门算法?这篇双指针让你吃到饱【力扣真题】+【算法图解】
  20. 选股公式blog+节选

热门文章

  1. python做统计监考课时_python--DenyHttp项目(2)--ACM监考服务器端
  2. 性能测试瓶颈分析和报告
  3. 实战思考:从0到1搭建UGC社区系统
  4. idea java找不到工作路径(相对路径)
  5. 生成openVPN客户端配置的shell脚本
  6. Confluence 6 如何考虑设置一个空间的主页
  7. jaxj 阿贾克斯 基础用法
  8. Java速成篇-Day02笔记
  9. padavan设置lan的网关(交换机模式)
  10. python插件汉化_Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)