22 pandas字符串操作

news2024/9/25 3:23:10

文章目录

  • 字符串对象方法
  • cat和指定字符串进行拼接
    • 查看数据
    • 不指定参数,所有姓名拼接
    • 不指定参数,所有姓名拼接添加分隔符
    • 添加数据
    • 遇到空值时
    • 合并
  • split按照指定字符串分隔
  • partition 按照指定字符串分割
  • get 获取指定位置的字符,只能获取1个
  • slice 获取指定范围的字
  • slice_replace 筛选之后替换
  • join将每个字符之间使用指定字符相连
  • contains 判断字符串是否含有指定字串,返回的是bool类型
  • startswith 是否某个字串开头
  • endswith 判断是否以某个子串结尾
  • repeat 重复字符串
  • pad将每一个元素都用指定的字符填充,只能是一个字符
  • zfill填充,只能是0,从左边填充
  • strip 按照指定内容,从两边去除
  • get_dummies
  • translate 指定部分替换
  • find 查找指定字符串第一次出现的位置
  • 字母大小写
  • 判断【返回T或F】
  • match 是否匹配给定的模式
  • extract 分组捕捉

字符串对象方法

在这里插入图片描述

cat和指定字符串进行拼接

查看数据

在这里插入图片描述

不指定参数,所有姓名拼接

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data['姓名'].str.cat())# 不指定参数,所有姓名拼接

在这里插入图片描述

不指定参数,所有姓名拼接添加分隔符

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data['姓名'].str.cat(sep='、'))# 添加字符

在这里插入图片描述

添加数据

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data['姓名'].str.cat(['变身']*len(data)))## ['变身'] * len(data) 相当于 ['变身'] * 6次

在这里插入图片描述

遇到空值时

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data['里程'].str.cat(['快跑'] * len(data),sep='^',na_rep='@'))

在这里插入图片描述

合并

在这里插入图片描述

split按照指定字符串分隔

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.split())# 不指定分隔符,就是一列表
print(data['状态'].str.split('血')) # 和python内置split一样
print(data['状态'].str.split('血',n=-1)) # 指定n,表示分隔次数,默认是-1,全部分隔
print(data['状态'].str.split('血',expand=True))

# 注意这个expand,默认是False,得到是一个列表
# 如果指定为True,会将列表打开,变成多列,变成DATAFrame
# 列名则是按照0 1 2 3····的顺序,并且默认Nan值分隔后还是为Nan
# 如果分隔符不存在,还是返回DATAFrame

在这里插入图片描述

partition 按照指定字符串分割

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.partition('血'))# 不指定分隔符,就是一列表
# partition只会分隔一次
# 第一个元素:第一个分隔符之前的部分
# 第二个元素:分隔符本身
# 第三个元素:第一个分隔符之后的内容
# 如果有多个分隔符,也只会按照第一个分隔符分隔
print('BbBbB'.partition('b'))
print((data['状态'].str.partition('平')))
print((data['状态'].str.partition()))

在这里插入图片描述

get 获取指定位置的字符,只能获取1个

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].get(2))


# 如果全部越界,那么None也为NaN,并且整体是float64类型
# 如果pandas用的时间比较长的话,一定会遇见该问题
# 像数据库、excel、csv等等,原来的类型明明为整型,但是读成DataFrame之后变成浮点型了
# 就是因为含有空值,变成float了。
"""
如果是object类型(或者理解为str),空值可以是None,也可以是NaN,但不可以是NaT

对于整型来说,如果含有空值,那么空值为NaN。
对于时间类型来说,如果含有空值,那么空值为NaT。
即使你想转化也是没用的,如果想把NaN或者NaT变成None,只有先变成object(str)类型,才可以转化
"""

在这里插入图片描述

slice 获取指定范围的字

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.slice(0)) # 指定一个值的话,相当于[m:]
print(data['状态'].str.slice(0,3)) # 相当于[m:n],从0开始不包括3
print(data['状态'].str.slice(0,3,2)) # 相当于[m: n: step]
print(data['状态'].str.slice(5,9,2)) # 索引越界,默认为空字符串,原来Nan还是Nan

在这里插入图片描述

slice_replace 筛选之后替换

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.slice_replace(1,3,"520")) # 指定一个值的话,相当于[m:]

在这里插入图片描述

join将每个字符之间使用指定字符相连

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.join('a')) 

在这里插入图片描述

contains 判断字符串是否含有指定字串,返回的是bool类型

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.contains('血'))  # NaN还是返回Nan
print(data['状态'].str.contains('血',na=False))
print(data['状态'].str.contains('血',na=True))
print(data['状态'].str.contains('血',na="没有"))

在这里插入图片描述

startswith 是否某个字串开头

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.startswith('满'))

在这里插入图片描述

endswith 判断是否以某个子串结尾

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.endswith('满'))

在这里插入图片描述

repeat 重复字符串

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['姓名'].str.repeat(3))  # 把姓名重复3次

在这里插入图片描述

pad将每一个元素都用指定的字符填充,只能是一个字符

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['姓名'].str.pad(5,fillchar='&'))# 表示要占5个长度,用"&"填充,默认填在左边的
print(data["姓名"].str.pad(5, fillchar="<", side="right"))# 表示要占5个长度,用"&"填充,指定填在右边
print(data["姓名"].str.pad(5, fillchar="<", side="both"))# 指定side为both,会填在两端

在这里插入图片描述

zfill填充,只能是0,从左边填充

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['姓名'].str.zfill(10))

在这里插入图片描述

strip 按照指定内容,从两边去除

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['里程'].str.strip("中远近离"))

在这里插入图片描述

get_dummies

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['里程'].str.get_dummies('距'))
# 按照"距"进行分割,得到列表
# 所有列表中的元素总共有"中远、近、远、离"四种

在这里插入图片描述

translate 指定部分替换

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
字典 = str.maketrans({'距':'ju','离':'li'})
print(data['里程'].str.translate(字典))

在这里插入图片描述

find 查找指定字符串第一次出现的位置

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data["日期"].astype('str').str.find("-"))
# 当然可以指定范围,包括起始和结束
print(data["日期"].astype('str').str.find("-", 5))
print(data["日期"].astype('str').str.find("我")) #找不到返回-1

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

字母大小写

在这里插入图片描述

判断【返回T或F】

在这里插入图片描述

match 是否匹配给定的模式

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data['状态'].str.match(".{2}激"))
# NaN还是返回Nan,可按照 na= False 或 na = True 替换

在这里插入图片描述

extract 分组捕捉

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/字符串.xlsx'
data=pd.read_excel(path)
print(data)
print(data["日期"].astype('str').str.extract("\d{4}-(\d{2})-(\d{2})"))

在这里插入图片描述

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

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

相关文章

LeetCode题目笔记——6362. 合并两个二维数组 - 求和法

文章目录题目描述题目链接题目难度——简单方法一&#xff1a;常规双指针遍历代码/Python方法二&#xff1a;字典\哈希表代码/Python总结题目描述 给你两个 二维 整数数组 nums1 和 nums2. nums1[i] [idi, vali] 表示编号为 idi 的数字对应的值等于 vali 。nums2[i] [idi, …

Flutter-Widget-学习笔记

Widget 是整个视图描述的基础。 参考&#xff1a;https://docs.flutter.dev/resources/architectural-overview Widget 到底是什么呢&#xff1f; Widget 是 Flutter 功能的抽象描述&#xff0c;是视图的配置信息&#xff0c;同样也是数据的映射&#xff0c;是 Flutter 开发框…

2023年美赛C题Wordle预测问题二建模及Python代码详细讲解

更新时间&#xff1a;2023-2-19 相关链接 &#xff08;1&#xff09;2023年美赛C题Wordle预测问题一建模及Python代码详细讲解 &#xff08;2&#xff09;2023年美赛C题Wordle预测问题二建模及Python代码详细讲解 &#xff08;3&#xff09;2023年美赛C题Wordle预测问题三、四…

【Python】进制、计算机中的单位、编码、数据类型、索引、字符串切片、字符串的功能方法

一、进制计算机中底层所有的数据都是以 010101 的形式存在&#xff08;图片、文本、视频等&#xff09;。二进制八进制十进制&#xff08;也就是我们熟知的阿拉伯数字&#xff09;十六进制进制转换v1 bin(25) # 十进制转换为二进制 print(v1) # "0b11001"v2 oct(23…

【数据结构】顺序表:随机访问的速度快到飞起

&#x1f451;专栏内容&#xff1a;数据结构⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;日拱一卒&#xff0c;功不唐捐 文章目录一、前言二、线性表三、顺序表1、定义2、静态顺序表3、动态顺序表4、接口实现Ⅰ、初始化Ⅱ、销毁Ⅲ、增容Ⅳ、插入Ⅴ、删…

中国各省人力资本测算就业人员受教育程度构成(2000-2021年)

数据来源&#xff1a;自主整理 时间跨度&#xff1a;2000-2021年 区域范围&#xff1a;全国各省 指标说明&#xff1a; 人力资本测算公式&#xff1a;&#xff08;小学*6初中*9高中*12大专及以上*16&#xff09;/六岁及以上人口 参考文献&#xff1a; [1]罗仁福, 刘承芳,…

Python pandas「原有或者新建」Excel中「追加新或者新建」sheet

1.pandas原有Excel中追加新sheet 使用Pandas库&#xff0c;我们可以轻松将数据追加到现有的Excel工作簿中的新工作表中。以下是追加新工作表的简单步骤&#xff1a; 读取现有的Excel文件 使用Pandas库中的read_excel()函数读取现有的Excel文件。指定Excel文件的路径和文件名&a…

多模态机器学习入门Tutorial on MultiModal Machine Learning——第一堂课个人学习内容

文章目录课程记录核心技术Core Technical Challengesrepresentation表示alignment对齐转换translationFusion融合co-learning共同学习总结Course Syllabus教学大纲个人总结第一周的安排相关连接课程记录 这部分是自己看视频&#xff0c;然后截屏&#xff0c;记录下来的这部分的…

C生万物 | 模拟实现库函数strcpy之梅开n度

文章目录【梅开一度】&#xff1a;观察库函数strcpy()的实现【梅开二度】&#xff1a;模仿实现strcpy()【梅开三度】&#xff1a;优化简练代码【梅开四度】&#xff1a;assert()断言拦截【梅开五度】&#xff1a;const修饰常量指针【梅开六度】&#xff1a;还可以有返回值哦&am…

如何使用linux服务器多核跑程序和unhashable type: ‘list‘报错的解决方案

问题描述 在使用服务器多核跑程序的时候&#xff0c;需要把核心的程序抽取出来&#xff0c;然后提供迭代参数。然后就可以使用多核去跑程序了。但是在执行的过程中报错如下&#xff1a; Exception has occurred: TypeError unhashable type: list File "/home/LIST_208…

【机器学习 深度学习】通俗讲解集成学习算法

目录&#xff1a;集成学习一、机器学习中的集成学习1.1 定义1.2 分类器(Classifier)1.2.1 决策树分类器1.2.2 朴素贝叶斯分类器1.2.3 AdaBoost算法1.2.4 支持向量机1.2.5 K近邻算法1.3 集成学习方法1.3.1 自助聚合(Bagging)1.3.2 提升法(Boosting)1.3.2.1 自适应adaboost1.3.3 …

【C语言编译器】02 Windows下 7 种C语言IDE的使用(万字长文警告,含Visual Studio多个版本)

目录一、Visual Studio1.1 VS 20101.2 VS 20151.21 简介1.22 使用1.3 VS 20171.31 简介1.32 使用1.4 VS 20191.41 简介1.42 使用1.5 VS 20221.6 VS 安全函数问题1.7 VS “无法查找或打开PDB文件” 问题二、CLion2.1 CLion简介及安装2.2 使用CLion编写C程序三、Dev C3.1 Dev C简…

【ubuntu 22.04不识别ch340串口】

这个真是挺无语的&#xff0c;发现国内厂商普遍对开源环境不感兴趣&#xff0c;ch340官方linux驱动好像被厂家忘了&#xff0c;现在放出来的驱动还是上古内核版本&#xff1a; 于是&#xff0c;驱动居然要用户自己编译安装。。还好网上有不少大神&#xff1a;链接&#xff0c;…

一起学 pixijs(3):Sprite

大家好&#xff0c;我是前端西瓜哥。今天来学习 pixijs 的 Sprite。 Sprite pixijs 的 Sprite 类用于将一些纹理&#xff08;Texture&#xff09;渲染到屏幕上。 Sprite 直译为 “精灵”&#xff0c;是游戏开发中常见的术语&#xff0c;就是将一个角色的多个动作放到一个图片…

零基础小白如何学会Java?

Java作为目前使用最广泛的编程语言&#xff0c;自身在常见的企业级业务应用程序以及Android应用程序等方面都有突出的表现。作为跨平台语言&#xff0c;具有安全性、易用性、通用性等特点&#xff0c;被特意设计用于互联网的分布式环境。 对于很多喜欢代码的小伙伴来说Java都是…

音乐播放器-- 以及数据库数据存储

运行环境 &#xff1a; java1.8 数据库以及代码编写工具 &#xff1a; sqlserver -- mysql 也可以 工具 eclipse 编码gbk窗体 &#xff1a; Swing使用了jaudiotagger 进行了音乐处理 图片展示 ----- 空闲时间 做出来玩的项目 部分功能还没有完善 完善了的功能 音乐 /// 主页 &a…

SheetJS的部分操作

成文时间&#xff1a;2023年2月18日 使用版本&#xff1a;"xlsx": "^0.18.5" 碎碎念&#xff1a; 有错请指正。 这个库自说自话升级到0.19。旧版的文档我记得当时是直接写在github的README上。 我不太会使用github&#xff0c;现在我不知道去哪里可以找到…

SpringMvc介绍。

目录 1、SpringMvc概述 1、基本介绍 2、工作流程 3、bean加载控制 二、请求 1、请求映射路径 2、请求方式 3、请求参数 4、请求参数&#xff08;传递json数据&#xff09; 5、日期类型参数传递 三、响应 四、REST风格 1、REST简介 2、RESTful入门案例 3、RESTfu…

信号完整性设计规则之串扰最小化

本文内容从《信号完整性与电源完整性分析》整理而来&#xff0c;加入了自己的理解&#xff0c;如有错误&#xff0c;欢迎批评指正。 1. 对于微带线和带状线&#xff0c;保持相邻信号路径的间距至少为线宽的2倍。 减小串扰的一种方式就是增大线间距&#xff0c;使线间距等于线…

GeniE 实用教程(三)属性

目 录一、前言二、材料属性三、截面属性3.1 梁横截面3.2 板壳厚度3.3 截面赋予四、截面偏置4.1 梁偏置4.2 板壳偏置五、局部轴方向5.1 梁的局部轴5.2 板壳的法向六、水力属性6.1 湿表面属性6.2 水动力参数七、参考文献一、前言 SESAM &#xff08;Super Element Structure Anal…