我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Pandas文本数据处理的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Pandas文本数据处理的示例分析

这篇文章主要介绍了Pandas文本数据处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1. 文本数据类型

在pandas中存储文本数据有两种方式:object 和 string。在pandas 1.0版本之前,object是唯一的文本类型,在一列数据中如果包含数值和文本等混合类型则一般也会默认为object。在pandas 1.0 版本之后,新增了string文本类型,可以更好的支持字符串的处理。

1.1. 类型简介

默认情况下,object仍然是文本数据默认的类型

Pandas文本数据处理的示例分析

如果要采用string类型,我们可以通过dtype进行指定

Pandas文本数据处理的示例分析

在Series 或 Dataframe被创建后,我们还可以通过astype进行类型强制转换

Pandas文本数据处理的示例分析

当然,我们还有个df.convert_dtypes()方法可以进行智能数据类型选择

Pandas文本数据处理的示例分析

1.2. 类型差异

string和object在操作上有所不同。

对于sting来说,返回数字输出的字符串访问器方法将始终返回可为空的整数类型;对于object来说,是 int 或 float,具体取决于 NA 值的存在

Pandas文本数据处理的示例分析

对于string类型来说,返回布尔输出的方法将返回一个可为空的布尔数据类型

Pandas文本数据处理的示例分析

2. 字符串方法

Series 和 Index 都有一些字符串处理方法,可以方便进行操作,最重要的是,这些方法会自动排除缺失/NA 值,我们可以通过str属性访问这些方法。

2.1. 文本格式

文本格式是对字符串文本进行格式操作,比如转换大小写之类的

>>> s = pd.Series(...     ["A", "B", "Aaba", "Baca", np.nan, "cat"],...     dtype="string"... )>>> s.str.lower() # 转小写0       a1       b2    aaba3    baca4    <NA>5     catdtype: string>>> s.str.upper() # 转大写0       A1       B2    AABA3    BACA4    <NA>5     CATdtype: string>>> s.str.title() # 每个单词大写0       A1       B2    Aaba3    Baca4    <NA>5     Catdtype: string>>> s.str.capitalize() # 首字母大写0       A1       B2    Aaba3    Baca4    <NA>5     Catdtype: string>>> s.str.swapcase() # 大小写互换0       a1       b2    aABA3    bACA4    <NA>5     CATdtype: string>>> s.str.casefold() # 转为小写,支持其他语言0       a1       b2    aaba3    baca4    <NA>5     catdtype: string

2.2. 文本对齐

文本对齐是指在文本显示的时候按照一定的规则进行对齐处理,比如左对齐、右对齐、居中等等

>>> s.str.center(10,fillchar='-') # 居中对齐,宽度为10,填充字符为'-'0    ----A-----1    ----B-----2    ---Aaba---3    ---Baca---4          <NA>5    ---cat----dtype: string>>> s.str.ljust(10,fillchar='-') # 左对齐0    A---------1    B---------2    Aaba------3    Baca------4          <NA>5    cat-------dtype: string>>> s.str.rjust(10,fillchar='-') # 右对齐0    ---------A1    ---------B2    ------Aaba3    ------Baca4          <NA>5    -------catdtype: string>>> s.str.pad(width=10, side='left', fillchar='-') # 指定宽度,填充字符对齐方式为 left,填充字符为'-'0    ---------A1    ---------B2    ------Aaba3    ------Baca4          <NA>5    -------catdtype: string>>> s.str.zfill(3) # 指定宽度3,不足则在前面添加00     00A1     00B2    Aaba3    Baca4    <NA>5     catdtype: string

2.3. 计数与编码

文本计数与内容编码

>>> s.str.count("a") # 字符串中指定字母的数量0       01       02       23       24    <NA>5       1dtype: Int64>>> s.str.len() # 字符串的长度0       11       12       43       44    <NA>5       3dtype: Int64>>> s.str.encode('utf-8') # 编码0       b'A'1       b'B'2    b'Aaba'3    b'Baca'4       <NA>5     b'cat'dtype: object>>> s.str.encode('utf-8').str.decode('utf-8') # 解码0       A1       B2    Aaba3    Baca4    <NA>5     catdtype: object

2.4. 格式判断

格式判断就是对字符串进行字符格式判断,比如是不是数字,是不是字母,是不是小数等等

>>> s = pd.Series(...     ["A", "B", "Aaba", 12, 5, np.nan, "cat"],...     dtype="string"... )>>> s.str.isalpha() # 是否为字母0     True1     True2     True3    False4    False5     <NA>6     Truedtype: boolean>>> s.str.isnumeric() # 是否为数字0-90    False1    False2    False3     True4     True5     <NA>6    Falsedtype: boolean>>> s.str.isalnum() # 是否由数字或字母组成0    True1    True2    True3    True4    True5    <NA>6    Truedtype: boolean>>> s.str.isdigit() # 是否为数字0    False1    False2    False3     True4     True5     <NA>6    Falsedtype: boolean>>> s.str.isdecimal() # 是否为小数0    False1    False2    False3     True4     True5     <NA>6    Falsedtype: boolean>>> s.str.isspace() # 是否为空格0    False1    False2    False3    False4    False5     <NA>6    Falsedtype: boolean>>> s.str.islower() # 是否为小写0    False1    False2    False3    False4    False5     <NA>6     Truedtype: boolean>>> s.str.isupper() # 是否为大写0     True1     True2    False3    False4    False5     <NA>6    Falsedtype: boolean>>> s.str.istitle() # 是否为标题格式0     True1     True2     True3    False4    False5     <NA>6    Falsedtype: boolean

以上这些字符串的方法其实和python原生的字符串方法基本相同。

3. 文本高级操作

文本高级操作包含文本拆分、文本替换、文本拼接、文本匹配与文本提取等,学会这些操作技巧,我们基本上就可以完成常见的复杂文本信息处理与分析了。

3.1. 文本拆分

文本拆分类似excel里的数据分列操作,将文本内容按照指定的字符进行分隔,具体大家可以看下面案例。

方法split()返回的是一个列表

Pandas文本数据处理的示例分析

我们可以使用get 或 []符号访问拆分列表中的元素

Pandas文本数据处理的示例分析

我们还可以将拆分后的列表展开,需要使用参数expand

Pandas文本数据处理的示例分析

同样,我们可以限制分隔的次数,默认是从左开始(rsplit是从右到左),用到参数n

Pandas文本数据处理的示例分析

对于更复杂的拆分规格,我们可以在分隔符处传入正则表达式

Pandas文本数据处理的示例分析

补充:像str.slice()切片选择方法与str.partition()文本划分方法都有类似效果,大家可以自定查阅官方文档案例了解。

3.2. 文本替换

我们经常在数据处理中用到替换功能,将指定的一些数据替换成我们想要替换的内容。同样,在处理文本数据替换的时候,str.repalce()也可以很好的满足这一操作。

Pandas文本数据处理的示例分析

以上案例中,将regex参数设置为False就可以进行字面替换而不是对每个字符进行转义;反之,则需要转义,为正则替换。

此外,我们还可以正则表达式替换,比如下面这个例子中我们实现的是对文本数据中英文部分进行倒序替换:

Pandas文本数据处理的示例分析

可能部分同学无法直观的理解上面的正则案例,这里简单的拆解介绍下:

Pandas文本数据处理的示例分析

关于正则表达式的一些介绍,大家还可以参考此前推文《》进行更多了解。

另外,我们还可以通过str.slice_replace()方法实现保留选定内容,替换剩余内容的操作:

Pandas文本数据处理的示例分析

补充:我们还可通过str.repeat()方法让原有的文本内容重复,具体大家可以自行体验

3.3. 文本拼接

文本拼接是指将多个文本连接在一起,基于str.cat()方法

比如,将一个序列的内容进行拼接,默认情况下会忽略缺失值,我们亦可指定缺失值

Pandas文本数据处理的示例分析

连接一个序列和另一个等长的列表,默认情况下如果有缺失值,则会导致结果中也有缺失值,不过可以通过指定缺失值na_rep的情况进行处理

Pandas文本数据处理的示例分析

连接一个序列和另一个等长的数组(索引一致)

Pandas文本数据处理的示例分析

索引对齐

Pandas文本数据处理的示例分析

在索引对齐中,我们还可以通过参数join来指定对齐形式,默认为左对齐left,还有outer, inner, right

Pandas文本数据处理的示例分析

3.4. 文本匹配

文本匹配这里我们介绍查询和包含判断,分别用到str.findall()str.find()str.contains()方法。

文本查询str.findall()返回查询到的值,str.find()返回匹配到的结果所在的位置(-1表示不存在)

Pandas文本数据处理的示例分析

文本包含,其实str.contain()常见于数据筛选中

Pandas文本数据处理的示例分析

此外,还有str.startwith()str.endwith()用于指定开头还是结尾包含某字符的情况,而str.match()则可用于正则表达式匹配。

3.5. 文本提取

我们在日常中经常遇到需要提取某序列文本中特定的字符串,这个时候采用str.extract()方法就可以很好的进行处理,它是用正则表达式将文本中满足要求的数据提取出来形成单独的列

比如下面这个案例,我们用正则表达式将文本分为两部分,第一部分是字母a和b,第二部分匹配数字:

Pandas文本数据处理的示例分析

在上述案例中,expand参数为Fasle时如果返回结果是一列则为Series,否则是Dataframe。

我们还可以对提取的列进行命令,形式如?P<列名称>,具体如下:

Pandas文本数据处理的示例分析

提取全部匹配项,会将一个文本中所有符合规则的内容匹配出来,最后形成一个多层索引数据:

Pandas文本数据处理的示例分析

我们还可以从字符串列中提取虚拟变量,例如用"|"分隔(第一行abc只有a,第二行有a和b,第三行都没有,第四行有a和c):

Pandas文本数据处理的示例分析

以上就是本次全部内容,相信大家在熟练这些文本数据处理的操作后,在日常工作中对于文本数据的处理将会非常得心应手。

感谢你能够认真阅读完这篇文章,希望小编分享的“Pandas文本数据处理的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Pandas文本数据处理的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Pandas文本数据处理的示例分析

这篇文章主要介绍了Pandas文本数据处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 文本数据类型在pandas中存储文本数据有两种方式:object 和
2023-06-20

Pandas数据存储的示例分析

这篇文章主要为大家展示了“Pandas数据存储的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Pandas数据存储的示例分析”这篇文章吧。数据的存储数据可以有两种类型-连续的和离散的,这
2023-06-27

数据分析处理库Pandas——显示设置

获取最多打印行数 显示内容超出部分打印成省略号。 设置最多打印行数 获取最多打印列数 显示内容超出部分打印成省略号。 设置最多打印列数 获取打印字符串的最大长度 显示内容超出部分打印成省略号。 设置打印字符串的最大长度 获取打印小数精度 小
2023-01-31

Python Pandas数据结构的示例分析

这篇文章将为大家详细讲解有关Python Pandas数据结构的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 Pandas介绍2008年WesMcKinney开发出的库专门用于数据挖掘的开源p
2023-06-29

Pandas数据分析多文件批次聚合处理实例解析

这篇文章主要为大家介绍了Pandas数据分析多文件批次聚合处理实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-15

VB.NET处理数据行的示例分析

VB.NET处理数据行的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对于编程人员来说,运用VB.NET能给他们带来好处是不言而喻的。那么它的哪些优点能
2023-06-17

Python Pandas数据处理高频操作实例分析

这篇文章主要介绍“Python Pandas数据处理高频操作实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python Pandas数据处理高频操作实例分析”文章能帮助大家解决问题。引入依赖
2023-07-02

数据分析处理库Pandas——概述

导入Pandas库 创建DataFrame结构 读取.csv文件titanic_train.csv文件:https://files.cnblogs.com/files/gloria-zhang/titanic_train.rar pd.re
2023-01-31

数据分析处理库Pandas——时间

时间戳 向后推的时间戳 备注:五天后的时间。 指定日期和时间 时间的Series结构 按要求显示时间(开始时间,时间间隔,时间个数) 转换为时间格式,并设置时间列为索引列 方法一 方法二 筛选显示 方法一 备注:按日期时间区间显示数据。 方
2023-01-31

Linux中Shell文本处理工具的示例分析

这篇文章给大家分享的是有关Linux中Shell文本处理工具的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过
2023-06-13

Pytorch中Dataset数据处理的示例分析

这篇文章给大家分享的是有关Pytorch中Dataset数据处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Pytorch系列是了解与使用Pytorch编程来实现卷积神经网络。学习如何对卷积神经网络编
2023-06-22

数据分析处理库Pandas——数据透视表

数据 按指定的行列值显示 求和 按行求和 按列求和 数据 求平均 备注:按性别计算每个等级船票的平均价格。 备注:每个等级船舱中每种性别获救的平均值,也就是获救的比例。 备注:每种性别未成年人获救的平均值,也就是获救的比例。 求最大值 备注
2023-01-31

BAT批处理脚本的示例分析

这篇文章主要为大家展示了“BAT批处理脚本的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“BAT批处理脚本的示例分析”这篇文章吧。第一章 批处理基础第一节 常用批处理内部命令简介批处理定
2023-06-08

hadoop大数据处理平台的示例分析

这篇文章给大家分享的是有关hadoop大数据处理平台的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。大数据能够在国内得到快速发展,甚至是国家层面的支持,最为重要的一点就是我们纯国产大数据处理技术的突破以及
2023-06-02

Python函数加速数据分析处理速度的示例分析

Python函数加速数据分析处理速度的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言:Pandas 是 Python 中最广泛使用的数据分析和操作库
2023-06-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录