(六)Pandas文本数据 学习简要笔记 #Python #CDA学习打卡

news2024/11/25 17:17:39

一. 文本数据简介

1)定义

指不能参与算术运算的任何字符,也称为字符型数据。如英文字母、汉字、不作为数值使用的数字(以单引号开头)和其他可输入的字符。

文本数据虽不能参加算术运算,但其具有纬度高、量大且语义复杂等特点,因此在进行数据分析的时候需要重视这类型数据。

2)类型

Pandas用来代表文本数据类型主要有两种:string和object。object一般为NumPy的数组,string为最常规的文本数据。

最常用的还是使用string来存储文本文件,但是使用dataframe和series进行数据处理转换的时候object数据类型又用的多。

在Pandas1.0版本之前只有object类型,这会导致字符数据和非字符数据全部都以object方式存储,导致处理混乱。而后续版本优化加入了String更好的区分了处理文本数据的耦合问题。目前的object类型依旧是文本数据和数组类型的string数据,但是Pandas为了后续的兼容性依旧将object类型设为默认的文本数据存储类型。

根据MBA智库百科,string与object之间有三大区别

  1. 字符存取方法(string accessor methods)string会返回相应数据的Nullable类型,object会随缺失值的存在而改变返回类型。
  2. 某些Series方法不能在string上使用。例如: Series.str.decode(),因为存储的是字符串而不是字节
  3. string类型在缺失值存储或运算时,类型会广播为pd.NA,而不是浮点型np.nan。

二. 字符操作

0)举例数据

1)大小写变换

(a)lower():全部小写

(b)upper():全部大写

(c)capitalize():首字符大写

(d)swapcase():大小写互换

2)文本对齐

(a)center():中间补齐

#居中对齐,宽度为10,其余用’?’填充

(b)ljust():右边补齐

#右对齐,宽度为10,其余用’?’填充

(c)rjust():左边补齐

#左对齐,宽度为10,其余用’?’填充

(d)pad():左右补齐

#自定义对齐方式,参数可调整宽度、对齐方向、填充字符

3)文本计数

(a)count():计算给定单词出现的次数

#计算字符串内b的数量

(b)len():计算字符串的长度

4)格式判断

(a)isalnum():是否全部是数字和字母组成

(b)isalpha():是否全部是字母

(c)isdigit():是否全部都是数字

(d)isspace():是否空格

(e)islower():是否全部小写

(f)isupper():是否全部大写

(g)istitle():是否只有首字母为大写,其他字母为小写

(h)isnumeric():是否是数字

(i)isdecimal():是否全是数字

三. 文本高级处理

1)文本拆分与切片

(a)split():切分字符串

按照某个指定的字符作为分割点拆分文本,对文本分隔后会生成一个列表。使用expand参数还可以将分隔内容展开,形成单独的列,n参数可以指定拆分的位置来控制形成几列。

下例以下划线对内容进行了分隔,分隔后每个内容都成为一个列表。分隔对空值不起作用。

(b)slice():按给定点的开始结束位置切割字符串

其他例子

(c)partition():把字符串数组切割成为DataFrame

注意切割只是切割成三部分,分隔符前,分隔符,分隔符后

(d)rpartition():从右切起

2)文本替换

(a)replace():替换不想要的内容

replace是最常用的替换方法,参数包括:

  • pal:为被替代的内容字符串,也可以为正则表达式
  • repl:为新内容字符串,也可以是一个被调用的函数
  • regex:用于设置是否支持正则,默认是True

(b)repeat():让原有文本内容重复

repeat可以实现重复替换的功能,参数repeats设置重复的次数。

(c)slice_replace():使用给定的字符串,替换指定的位置的字符

slice_replace通过切片可以保留或者删除指定的字符,参数如下:

  • start:起始位置
  • stop:结束位置
  • repl:要替换用的新内容

如果没有设置stop,那么start之后全部进行替换;同理如果没设置start,那么stop之前全部进行替换。

3)文本拼接

(a)cat():拼接字符串

cat可以拼接字符串,参数如下:

  • others: 需要拼接的序列,如果为None不设置,就会自动把当前序列拼接为一个字符串
  • sep: 拼接用的分隔符
  • na_rep: 默认不对空值处理,这里设置空值的替换字符。
  • join: 拼接的方向,包括left, right, outer, inner,默认为left

(b)join():对每个字符都用给定的字符串拼接起来(不常用)

4)文本提取

(a)get():获取指定位置的字符串

(b)extract():抽取匹配的字符串出来

extract可以利用正则表达式将文本中的数据提取出来,形成单独的列(注意要加上括号,把你需要抽取的东西标注上)参数如下:

  • pat: 通过正则表达式实现一个提取的pattern
  • flags: 正则库re中的标识,比如re.IGNORECASE
  • expand: 当正则只提取一个内容时,如果expand=True会展开返回一个DataFrame,否则返回一个Series

5)文本查询

(a)find():从左边开始,查找给定字符串的所在位置

(b)rfind():从右边开始,查找给定字符串的所在位置

(c)findall():查找所有符合正则表达式的字符,以数组形式返回

(d)index():查找给定字符串的位置

注意,如果不存在这个字符串,那么会报错!

(e)rindex():从右边开始查找,给定字符串的位置

6)文本包含

(a)contains():是否包含表达式(很常用)

文本包含通过contains方法实现,返回布尔值,一般和loc查询功能配合使用,参数如下:

  • pat: 匹配字符串,支持正则表达式
  • case: 是否区分大小写,True表示区别
  • flags: 正则库re中的标识,比如re.IGNORECASE
  • na: 对缺失值填充
  • regex: 是否支持正则,默认True支持

(b)match():检测是否全部匹配给点的字符串或者表达式

(c)startswith():判断是否以给定的字符串开头

(d)endswith():判断是否以给定的字符串结束

7)去除空格

(a)strip():去除前后的空白字符

(b)rstrip():去除后面的空白字符

(c)Istrip():去除前面的空白字符

下一期:Pandas时间数据,Bye!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1607165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业微信扫码登录遇到的bug及解决办法

企业微信自建应用扫码登录 1.基本配置 1.登录企业微信管理系统,新建一个自建应用 2.点击你新建的应用,拿到AgentId 3.在我的企业页面拿到appid 4.配置可信域名 5.配置授权回调域 写到这,基本配置已完成,可以开始写前端代码 …

【高级RAG技巧】在大模型知识库问答中增强文档分割与表格提取

前言 文档分割是一项具有挑战性的任务,它是任何知识库问答系统的基础。高质量的文档分割结果对于显著提升问答效果至关重要,但是目前大多数开源库的处理能力有限。 这些开源的库或者方法缺点大致可以罗列如下: 只能处理文本,无法…

MySql8快速迁移版的制作过程

首先说明,mysql 8的安装不同与mysql5.x。 做程序的朋友都知道,程序好做,客户难伺候,因为限于用户的情况,如何能让用户把程序运行起来很关键,比如日前我在做 山东高中信息技术 学考 考前练习 系统时&#x…

解决 vue install 引发的 failed Error: not found: python2 问题

发生 install 异常时,提示信息如下所示: npm ERR! code 1 npm ERR! path U:\cnblogs\fanfengping-dtops\fanfengping-dtops-front\node_modules\node-sass npm ERR! command failed npm ERR! command U:\Windows\system32\cmd.exe /d /s /c node scripts…

苍穹外卖学习笔记(5.微信登录,商品浏览)

目录 一、微信登录1、封装HttpClient工具类2、导入小程序代码3、微信登录流程4、需求分析设计5、代码开发6、功能测试 二、商品浏览1、需求分析设计2、代码开发1.查询分类2.根据分类id查询套餐3.根据分类id查询套餐,根据套餐id查询包含菜品 3、测试 四、相关知识1、…

Django模型的字段类型

Django模型中最重要并且也是唯一必须执行的就是字段定义。字段在类中进行定义,对应于实体数据库的字段。另外,定义模型字段名时为了避免冲突,不建议使用模型API中已经定义的关键字。 字段类型用以指定数据库的数据类型,例如Integ…

python入门之简洁安装VS保姆版安装(含虚拟环境)

11、保姆版安装 Anoconda安装(python的一个发行版本) 优点:集成了许多关于python科学计算的第三方库,保姆级别 下载:www.anaconda.com/download/ 版本默认64位,py37 √:add anaconda to my…

代码随想录算法训练营第三十八天|509. 斐波那契数,70.爬楼梯,746. 使用最小花费爬楼梯

动态规划(DP) 如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的 一、动态规划包含哪些问题? 1、基础问题,如斐波那契数 2、背包问题,很经典的问题 3、打家劫舍 4、…

操作系统命令(贪吃蛇项目)

🏝1.获得句柄 GetStdHandle是⼀个Windows API函数。它用于从⼀个特定的标准设备(标准输入、标准输出或标 准错误)中取得⼀个句柄(用来标识不同设备的数值),使用这个句柄可以操作设备。 ⛳️函数原型&…

Git使用总结(不断更新中)

branch 本地分支操作 删除本地分支 git branch -d <local-branch-name>远端分支操作 从远端分支创建本地分支 git checkout -b <local-branch-name> origin/<remote-branch-name>git ignore 如果工程的代码文件中有不希望上传到远端的文件&#xff0c;…

【Linux学习】Linux权限管理(一)

文章标题 &#x1f680;Linux用户分类&#x1f680;Linux权限管理&#x1f680;文件访问者的分类&#xff08;人&#xff09;&#x1f680;文件类型和访问权限&#xff08;事物属性&#xff09;&#x1f680;怎么修改权限 &#x1f680;Linux用户分类 Linux下有两种用户&#…

使用Hugo、Github Pages搭建自己的博客

文章目录 搭建博客框架及对比使用Hugo搭建博客使用Github Pages部署博客 搭建博客框架及对比 在众多的博客框架中&#xff0c;Hugo、Jekyll和Hexo因其出色的性能和易用性而备受推崇。 特点HugoJekyllHexo速度极高中等较高易用性高中等高&#xff08;熟悉JavaScript者&#xf…

力扣112,路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 是指没有子节点…

怎样实现opc采集数据后传给web后端

现在很多老工厂要进行数字化改造&#xff0c;现场生产的各种数据需要传到web后端&#xff0c;很多工厂现场原有的自动监控系统已经采集了现场的各种数据&#xff0c;只是没有形成联网。如果前端自动化系统全部废除&#xff0c;重新做数字化控制系统&#xff0c;成本投入太大&am…

GIS地理信息平台+智慧巡检技术解决方案(Word原件)

1.系统概述 1.1.需求描述 1.2.需求分析 1.3.重难点分析 1.4.重难点解决措施 2.系统架构设计 2.1.系统架构图 2.2.关键技术 3.系统功能设计 3.1.功能清单列表软件全套精华资料包清单部分文件列表&#xff1a; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项…

风速Weibull分布和光伏Beta分布的参数拟合方法(含matlab算例)

在风光场景生成、随机优化调度等研究中&#xff0c;常常假设风速服从Weibull分布&#xff0c;太阳辐照度服从Beta分布。那我们如何得到两个分布的参数呢&#xff1f;文本首先介绍了风速Weibull分布和辐照度Beta分布的基本概率模型及其性性质&#xff0c;之后以MATLAB代码为例阐…

Linux操作系统-10-Iptables

一、iptables防火墙介绍 无论IPtables还是Firewalld都是对netfilter防火墙框架进行的命令层的封装 1、三件事 防火墙做的三件事&#xff1a; 获取流量匹配规则给出反馈&#xff08;accept、drop&#xff09; iptables的特性&#xff1a;表、链、规则 2、五张表 五张表&a…

数据湖技术选型——Flink+Paimon 方向

文章目录 前言Apache Iceberg存储索引metadataFormat V2小文件 Delta LakeApache Hudi存储索引COWMOR元数据表 Apache PaimonLSMTagconsumerChangelogPartial Update 前言 对比读写性能和对流批一体的支持情况&#xff0c;建议选择Apache Paimon截止2024年1月12日数据湖四大开…

【计算机毕业设计】微信小程序:MHK自学平台的设计与实现——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

Swagger + SwaggerUI

用的是SpringBoot2、jdk11、<spring-boot.version>2.3.3.RELEASE</spring-boot.version> &#xff08;单纯的swagger还是不如knife界面好用好看&#xff09; 1.导入依赖 <dependency> <groupId>io.springfox</groupId> <art…