100天精通Python(数据分析篇)——第72天:Pandas文本数据处理方法之判断类型、去除空白字符、拆分和连接

news2025/1/11 21:56:44

文章目录

  • 每篇前言
  • 一、Python字符串内置方法
  • 1. 判断类型
  • 2. 去除空白字符
  • 3. 拆分和连接
  • 二、Pandas判断类型
    • 1. str.isspace()
    • 2. str.isalnum()
    • 3. str.isalpha()
    • 4. str.isdecimal()
    • 5. str.isdigit()
    • 6. str.isnumeric()
    • 7. str.istitle()
    • 8. str.islower()
    • 9. str.isupper()
  • 三、Pandas去除空白字符
    • 1. str.lstrip()
    • 2. str.rstrip()
    • 3. str.strip()
  • 四. 拆分和连接
    • 1. str.partition(str)
    • 2. str.rpartition(str)
    • 3. str.split()
      • 1)指定字符串分割
      • 2)分割后转换成多列
      • 3)设置分割次数
    • 4. str.splitlines()
    • 5. str.join(seq)

每篇前言

  • 🏆🏆作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6

  • 🔥🔥本文已收录于Python全栈系列专栏:《100天精通Python从入门到就业》
  • 📝​📝​此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣
  • 🎉🎉订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进千人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
  • 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!

在这里插入图片描述
在这里插入图片描述

本文是上篇的补充,基础不会的小伙伴请看上文:100天精通Python(数据分析篇)——第71天:Pandas文本数据处理方法之str/object类型转换、大小写转换、文本对齐、获取长度、出现次数、编码

一、Python字符串内置方法

1. 判断类型

方法说明
string.isspace()如果 string 中只包含空格,则返回 True
string.isalnum()如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
string.isalpha()如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdecimal()如果 string 只包含数字则返回 True,全角数字
string.isdigit()如果 string 只包含数字则返回 True,全角数字\u00b2
string.isnumeric()如果 string 只包含数字则返回 True,全角数字汉字数字
string.istitle()如果 string 是标题化的(每个单词的首字母大写)则返回 True
string.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
string.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True

2. 去除空白字符

方法说明
string.lstrip()截掉 string 左边(开始)的空白字符
string.rstrip()截掉 string 右边(末尾)的空白字符
string.strip()截掉 string 左右两边的空白字符

3. 拆分和连接

方法说明
string.partition(str)把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str)类似于 partition() 方法,不过是从右边开始查找
string.split(str=“”, num)以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
string.splitlines()按照行(‘\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表
string.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

二、Pandas判断类型

方法说明
series_obj.str.isspace()如果 string 中只包含空格,则返回 True
series_obj.str.isalnum()如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
series_obj.str.isalpha()如果 string 至少有一个字符并且所有字符都是字母则返回 True
series_obj.str.isdecimal()如果 string 只包含数字则返回 True,全角数字
series_obj.str.isdigit()如果 string 只包含数字则返回 True,全角数字\u00b2
series_obj.str.isnumeric()如果 string 只包含数字则返回 True,全角数字汉字数字
series_obj.str.istitle()如果 string 是标题化的(每个单词的首字母大写)则返回 True
series_obj.str.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
series_obj.str.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True

1. str.isspace()

如果 string 中只包含空格,则返回 True

import pandas as pd
import numpy as np

data = [1, '篮球', '羽毛球 ', ' 排球', ' ', None, np.NaN]
df = pd.Series(data)
print(df)
print(df.str.isspace())

运行结果:
在这里插入图片描述

2. str.isalnum()

如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True

import pandas as pd
import numpy as np

data = [1, '篮球', '羽毛球 ', ' 排球', ' ', None, np.NaN]
df = pd.Series(data)
print(df)
print(df.str.isalnum())

运行结果:
在这里插入图片描述

3. str.isalpha()

如果 string 至少有一个字符并且所有字符都是字母则返回 True

import pandas as pd
import numpy as np

data = [1, 'A', 'Ab', 'AbC', ' ', None, np.NaN]
df = pd.Series(data)
print(df)
print(df.str.isalpha())

运行结果:
在这里插入图片描述

4. str.isdecimal()

如果 string 只包含数字则返回 True,全角数字

import pandas as pd
import numpy as np

data = [1, '123', 'Ab', 'AbC', ' ', None, np.NaN]
df = pd.Series(data)
print(df)
print(df.str.isdecimal())

运行结果:
在这里插入图片描述

5. str.isdigit()

如果 string 只包含数字则返回 True,全角数字、⑴、\u00b2

import pandas as pd
import numpy as np

data = [1, '123', 'Ab', 'AbC', ' ', None, np.NaN]
df = pd.Series(data)
print(df)
print(df.str.isdigit())

运行结果:

在这里插入图片描述

6. str.isnumeric()

如果 string 只包含数字则返回 True,全角数字,汉字数字

import pandas as pd
import numpy as np

data = [1, '123', 'Ab', 'AbC', ' ', None, np.NaN]
df = pd.Series(data)
print(df)
print(df.str.isnumeric())

在这里插入图片描述

7. str.istitle()

如果 string 是标题化的(每个单词的首字母大写)则返回 True

import pandas as pd
import numpy as np

data = [1, 'A', 'Ab', 'ABC ab', 'Abc Ab', None, np.NaN]
df = pd.Series(data)
print(df)
print(df.str.istitle())

运行结果:
在这里插入图片描述

8. str.islower()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True。简单来说:全是小写才是True

import pandas as pd
import numpy as np

data = [1, 'A', 'Ab', 'ABC ab', 'Abc Ab', 'ab', np.NaN]
df = pd.Series(data)
print(df)
print(df.str.islower())

运行结果:
在这里插入图片描述

9. str.isupper()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True。简单来说:全是大写才是True

import pandas as pd
import numpy as np

data = [1, 'A', 'Ab', 'ABC ab', 'Abc Ab', 'ab', np.NaN]
df = pd.Series(data)
print(df)
print(df.str.isupper())

运行结果:
在这里插入图片描述

三、Pandas去除空白字符

方法说明
series_obj.str.lstrip()截掉 string 左边(开始)的空白字符
series_obj.str.rstrip()截掉 string 右边(末尾)的空白字符
series_obj.str.strip()截掉 string 左右两边的空白字符

1. str.lstrip()

截掉 string 左边(开始)的空白字符

import pandas as pd
import numpy as np

data = [1, 'A ', ' Ab', ' ABC ab', ' Abc Ab', ' ', np.NaN]
df = pd.Series(data)
print("去除左边空格前:")
print(df[2])
print(df[3])
print(df[4])
df = df.str.lstrip()  # 去除空格
print("去除左边空格后:")
print(df[2])
print(df[3])
print(df[4])

运行结果:
在这里插入图片描述

2. str.rstrip()

截掉 string 右边(末尾)的空白字符

import pandas as pd
import numpy as np

data = [1, 'A ', 'Ab ', 'ABC ab ', 'Abc Ab ', ' ', np.NaN]
df = pd.Series(data)
print("去除左边空格前:")
print(df[2])
print(df[3])
print(df[4])
df = df.str.rstrip()  # 去除空格
print("去除左边空格后:")
print(df[2])
print(df[3])
print(df[4])

运行结果:

在这里插入图片描述

3. str.strip()

截掉 string 左右两边的空白字符

import pandas as pd
import numpy as np

data = [1, ' A ', ' Ab ', ' ABC ab ', ' Abc Ab ', ' ', np.NaN]
df = pd.Series(data)
print("去除左边空格前:")
print(df[2])
print(df[3])
print(df[4])
df = df.str.strip()  # 去除空格
print("去除左边空格后:")
print(df[2])
print(df[3])
print(df[4])

运行结果:
在这里插入图片描述

四. 拆分和连接

方法说明
series_obj.str.partition(str)把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
series_obj.str.rpartition(str)类似于 partition() 方法,不过是从右边开始查找
series_obj.str.split(str=‘’, num)以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
series_obj.str.splitlines()按照行(‘\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表
series_obj.str.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

1. str.partition(str)

把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)

import pandas as pd
import numpy as np

data = [1, 'a', 'Ab', 'ABC ab', 'Abc Ab', ' ', np.NaN]
df = pd.Series(data)
print(df)
df = df.str.partition()
print(df)

在这里插入图片描述

2. str.rpartition(str)

类似于 partition() 方法,不过是从右边开始查找

import pandas as pd
import numpy as np

data = [1, 'a', 'Ab', 'ABC ab', 'Abc Ab', ' ', np.NaN]
df = pd.Series(data)
print(df)
df = df.str.rpartition()
print(df)

在这里插入图片描述

3. str.split()

以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’,
‘\t’, ‘\n’ 和空格。简单来说:就是以指定字符串分割

1)指定字符串分割

import pandas as pd
import numpy as np

data = [1, 'a;b', 'Ab;', 'ABC;ab;abc', 'Abc;Ab;eee', ' ', np.NaN]
df = pd.Series(data)
print(df)
df = df.str.split(";")
print(df)

运行结果:

在这里插入图片描述

2)分割后转换成多列

设置: expand=True

import pandas as pd
import numpy as np

data = [1, 'a;b', 'Ab;', 'ABC;ab;abc', 'Abc;Ab;eee', ' ', np.NaN]
df = pd.Series(data)
print(df)
df = df.str.split(";", expand=True)
print(df)

运行结果:
在这里插入图片描述

3)设置分割次数

设置:n=1

import pandas as pd
import numpy as np

data = [1, 'a;b', 'Ab;', 'ABC;ab;abc', 'Abc;Ab;eee', ' ', np.NaN]
df = pd.Series(data)
print(df)
df = df.str.split(";", expand=True, n=1)
print(df)

运行结果:
在这里插入图片描述

4. str.splitlines()

按照行(‘\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表。注意:这个方法Pandas无法使用

import pandas as pd
import numpy as np

data = [1, 'a\rb', 'Ab\n', 'ABC\r\nab\nabc', 'Abc;Ab;eee', ' ', np.NaN]
df = pd.Series(data)
print(df)
df = df.str.splitlines()
print(df)

运行结果:
在这里插入图片描述

5. str.join(seq)

以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串。简单来说:就是往元素之间插入一个指定元素,形成新的字符串

import pandas as pd
import numpy as np

data = [1, 'ab', 'Ab', 'ABC ab abc', 'Abc Ab eee', ' ', np.NaN]
df = pd.Series(data)
print(df)
df = df.str.join('-')
print(df)

运行结果:
在这里插入图片描述

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

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

相关文章

音视频技术开发周刊 | 279

每周一期,纵览音视频技术领域的干货。新闻投稿:contributelivevideostack.com。基于NeRF的APP上架苹果商店!照片转3D只需一部手机这个名叫Luma AI的“NeRF APP”,正式上架App Store后爆火。反 AiArt 运动中两件匪夷所思的蠢事Redd…

Elastic:使用 Postman 来访问

Elastic:使用 Postman 来访问 学习资料 Elastic:使用 Postman 来访问 Elastic Stack 当我们配置好elasticsearch的SSL之后,我们用网页https访问,输入账户及密码之后,可以成功访问数据。 但是用postman时,我…

2023/1/15 JS-闭包问题研究

1 举个栗子分析执行上下文 1: let a 3 2: function addTwo(x) { 3: let ret x 2 4: return ret 5: } 6: let b addTwo(a) 7: console.log(b)为了理解 JavaScript 引擎是如何工作的,让我们详细分析一下: 在第 1 行,我们在全局执行上…

Linux chattr命令

Linux chattr命令Linux 命令大全Linux chattr命令用于改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:a:让文件或目录仅供附加用途。b:不更新文件或目录的最后存取时间。c&#xff1…

从上到下看内存

从上到下看内存 1. 本篇目录 内存条,总线,DMAC 内存管理内存分类 内存相关的系统调用 java中的内存 2. 内存条,总线,DMAC 内存条 内存条:内存条其实是非常常见的一个组件。内存条是插在主板上的。 总线 内存条插好以后,计算机之间要进行交互。…

Linux 中断子系统(四):GIC中断初始化

以我手中的 imx6ull开发板为例。 如果使用设备树的话就需要在设备树中设置好中断属性信息,Linux 内核通过读取设备树中的中断属性信息来配置中断。对于中断控制器而言,设备树绑定信息参考文档 Documentation/devicetree/bindings/arm/gic.txt。 打开 imx6ull.dtsi 文件,其…

UDS诊断系列介绍12-11服务

本文框架1. 系列介绍1.1 11服务概述2. 11服务请求与应答2.1 11服务请求2.2 11服务正响应2.3 11服务否定响应3. Autosar系列文章快速链接1. 系列介绍 UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的…

三种方法解决React类组件中this指向问题

从onClick事件不加括号说起 import React from react import ./App.css class TestComponent extends React.Component {clickHandler () {console.log(111)console.log(this指向&#xff1a;, this)}render () {return (<button onClick{this.clickHandler()}>点击我&l…

机器学习实战4:基于马尔科夫随机场的图像分割(附Python代码)

目录0 写在前面1 图像分割问题2 图像像素邻域3 观测场与标记场4 马尔科夫随机场建模5 Python实现5.1 计算能量函数5.2 退火优化5.3 效果展示0 写在前面 机器学习强基计划聚焦深度和广度&#xff0c;加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理&a…

分享6个对象数组去重的方法

大家好&#xff0c;关于对象数组去重的业务场景&#xff0c;想必大家都遇到过类似的需求吧&#xff0c;针对这样的需求&#xff0c;你是怎么做的呢。下面我就先和大家讨论下基于对象的某个属性如何去重。方法一&#xff1a;使用 .filter() 和 .findIndex() 相结合的方法使用 fi…

基于AD Event日志监测AdminSDHolder

01、简介 AdminSDHolder是一个特殊的AD容器&#xff0c;通常作为某些特权组成员的对象的安全模板。Active Directory将采用AdminSDHolder对象的ACL并定期将其应用于所有受保护的AD账户和组&#xff0c;以防止意外和无意的修改并确保对这些对象的访问是安全的。如果攻击者能完全…

## Leetcode刷题Day24-------------------回溯算法

Leetcode刷题Day24-------------------回溯算法 1. 理论基础 题目链接/文章讲解&#xff1a;https://programmercarl.com/%E5%9B%9E%E6%BA%AF%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html视频讲解&#xff1a;https://www.bilibili.com/video/BV1cy4y167mM …

Linux文件目录与路径、内容查找命令及文件颜色知识总结

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录

一.说明 Shiro是一个安全框架,项目中主要用它做认证,授权,加密,以及用户的会话管理,虽然Shiro没有SpringSecurity功能更丰富,但是它轻量,简单,在项目中通常业务需求Shiro也都能胜任. 二.项目环境 MyBatis-Plus版本: 3.1.0 SpringBoot版本:2.1.5 JDK版本:1.8 Shiro版本:1.4…

ASUS X415安装系统找不到硬盘解决办法

同事让我帮忙安装系统&#xff0c;笔记本电脑型号是ASUS X415。原本以为是手到擒来的事情&#xff0c;结果我在上面还是消耗了不少时间。 现象 老毛桃PE 无法识别到硬盘。微PE可以识别到硬盘&#xff0c;但是系统安装以后&#xff0c;无法正常启动。启动出现蓝屏。或者无限等…

codewars闯关玩耍1

codewars闯关玩耍1 codewars网址&#xff1a;https://www.codewars.com/dashboard 大一时在知乎上看到的网站&#xff0c;然后 点击、收藏、吃灰 一键三连&#xff0c;最近翻收藏夹的时候突然又看见了决定进来玩玩&#xff0c;练练英语&#xff0c;巩固下python 以后此系列&a…

javaweb10 JSP语法、JSTL、EL表达式、JSP标签、九大内置对象

文章目录一、JSP简介二、JSP原理三、JSP语法四、JSP指令五、九大内置对象六、EL表达式七、JSP标签八、JSTL标签一、JSP简介 JSP&#xff08;java sever pages&#xff09;&#xff1a;java服务器端页面&#xff0c;和servlet一样&#xff0c;用于动态web技术 写JSP就像在写HTM…

中国to B应用软件的突破之路

我曾经随手画过一个很简单的图&#xff1a;我就分为供需两端。&#xff08;1&#xff09;如何让生意越做越大&#xff1f;那就在需侧&#xff0c;增加尽量多的交互。有人理解在营销环节-客户关系触点经营&#xff0c;有人理解在销售环节-多渠道多业态销售&#xff08;如电话销售…

振弦采集模块配置工具VMTool生成寄存器值

振弦采集模块配置工具VMTool生成寄存器值 生成寄存器值 VMXXX 有很多按位使用的寄存器&#xff0c; 使用 VMTool 工具可进行方便的设置&#xff0c;当需要知道寄存器的实际值时&#xff0c;可通过以下两种方法获取。 &#xff08;保持【 自动读取】 复选框为非选中状态&#xf…