Pandas 模块-操纵数据(12)-处理字符串数据

目录

1. .str 模块

1.1 数据准备

1.2 .str 函数详解

1.2.1 .str capitalize() 首字母大写

 1.2.2 .str casefold() 返回字符串的副本

 1.2.3 .str cat() 连接输出

 1.2.4 .str center(width[,fillchar]) 字符串居中

 1.2.5 .str contains() 含有特定字符

 1.2.6 .str count() 计数

 1.2.7 .str endswith(suffix[, start[, end]]) 是否以指定后缀结尾

  1.2.8 .str extract(pat[,flags=0,expand=True]) 提取特定字符

  1.2.9 .str swapcase() 字符串大小写翻转

1.2.10 .str find(str [beg=0, end=len(string)]) / findall 检测是否包含子字符串 

1.2.11 .str join(str]) 连接生成新字符串  

1.2.12 .str replace(str1,str2]) str2 替换 str1

1.2.13 .str split(str[,num]) 用 str 分割字符串 

1.2.14 .str translate(table) 字符转换


我们实际处理数据时候,往往要对原始数据进行很多精细化处理,下面减少一些常用的处理字符串的方式。

1. .str 模块

        Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据)。Series 结构中有个 str 模块,可以对字符串数据进行精雕细琢。

1.1 数据准备

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123bm', '456cj', '789du', 'e11fo']})
print(df)
type(df['data'])
Series 类型数据

1.2 .str 函数详解

1.2.1 .str capitalize() 首字母大写

df['data'].str.capitalize()

 1.2.2 .str casefold() 返回字符串的副本

        casefold 返回字符串的副本,所有的大写字符都被转换为小写字符,并且使用Unicode规范化,以便比较字符串时能够忽略大小写和语言差异。与lower()方法不同,casefold()方法在转换时考虑了更多的字符集和语言差异。

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123bM', '456Cj', '789du', 'e11fo']})
print(df)
print("*"*20)
df['data'].str.casefold()

 1.2.3 .str cat() 连接输出

        cat 命令原来是一个Linux shell命令。它是 concatenate 的简写。它被放在最常用的shell命令中。它可以用于各种目的,如在终端上显示一个文件的内容,将一个给定文件的内容复制到另一个给定文件,追加和覆盖内容都可以用 cat 命令完成。 在 Python 中它用来连接所有的数据一起输出

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123bM', '456Cj', '789du', 'e11fo']})
print(df)
print("*"*20)
df['data'].str.cat()

 1.2.4 .str center(width[,fillchar]) 字符串居中

        center()是一个非常实用的方法。该方法主要用于将字符串居中,并在两侧填充指定字符(默认为空格)以达到指定的总长度。对于文本格式化、界面设计以及数据展示等场景,center()方法都能提供高效的解决方案。

  • width:指定字符串居中后的总长度,如果该长度小于原字符串长度,则原样返回字符串。

  • fillchar:可选参数,用于指定填充字符,默认为空格。

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123bM', '456Cj', '789du', 'e11fo']})
print(df)
print("*"*20)
df['data'].str.center(20,"*")

 1.2.5 .str contains() 含有特定字符

        contains 方法可以判断子串是否在原字符串中。

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123bM', '456Cj', '789du', 'e11fo']})
print(df)
print("*"*20)
df['data'].str.contains("M")

 1.2.6 .str count() 计数

        count 用于计算给定元素在字符串中出现的次数。

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123bM', '456Cj', '789du', 'e11fo']})
print(df)
print("*"*20)
df['data'].str.count("(\d)")

 1.2.7 .str endswith(suffix[, start[, end]]) 是否以指定后缀结尾

        endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123bM', '456Cj', '789du', 'e11fo']})
print(df)
print("*"*20)
df['data'].str.endswith('\d')

  1.2.8 .str extract(pat[,flags=0,expand=True]) 提取特定字符

        extract 方法用于提取正则表达式pat中的捕获组作为DataFrame中的列。对于系列中的每个主题字符串,从正则表达式pat的第一个匹配中提取组。

        pat : 带有捕获组的正则表达式模式。
        flags : int, default 0 (no flags)
        expand : 如果为真,则返回每个捕获组有一列的DataFrame。

df['data'].str.extract("(\d+)")

  1.2.9 .str swapcase() 字符串大小写翻转

df['data'].str.swapcase()

 

1.2.10 .str find(str [beg=0, end=len(string)]) / findall 检测是否包含子字符串 

        find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

  • str -- 指定检索的字符串
  • beg -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。
import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123aM', '45aCa', '789da', 'e11f5']})
print(df['data'].str.find('a'))
print(df['data'].str.findall('a'))

1.2.11 .str join(str]) 连接生成新字符串  

         join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123aM', '45aCa', '789da', 'e11f5']})
print(df['data'].str.join("-"))

1.2.12 .str replace(str1,str2]) str2 替换 str1

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123aM', '45aCa', '789da', 'e11f5']})
print(df['data'].str.replace("a","A"))

1.2.13 .str split(str[,num]) 用 str 分割字符串 

       split 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({'data': ['a123aM', '45aCa', '789da', 'e11f5']})
print(df['data'].str.split("\d"))

 

1.2.14 .str translate(table) 字符转换

         translate 用于执行字符转换操作。它接受一个映射表(translation table)作为参数,该映射表指定了要替换的字符以及它们的对应替换值。

import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({'data': ['12345', '57890', '22222', '77777']})
table = str.maketrans( '0123456789','abcdefghij')
df['data'].str.translate(table)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【代码随想录——回溯算法二周目】

1. 组合总和 var (path []intres [][]int )func combinationSum(candidates []int, target int) [][]int {path make([]int, 0)res make([][]int, 0)dfs(candidates,target,0,0)return res }func dfs(candidates []int, target int,tempTarget int,start int) {if tempTarg…

【Xilinx】常用的全局时钟资源相关Xilinx器件原语

1 概述 常用的与全局时钟资源相关的Xilinx器件原语包括: IBUFGIBUFGDS、OBUFGDS 和 IBUFDS、OBUFDSBUFGBUFGPBUFGCEBUFGMUXBUFGDLLIBUFDS_GTXE1IBUFDS_GTE2IBUFDS_GTE3OBUFDS_GTE3IBUFDS_GTE4OBUFDS_GTE4DCM 刚开始看到这写源语,免不了好奇这些源语对应的…

网络空间安全数学基础·群

重点: 1. 群及子群的定义及相关结论 2. 群的判断,子群的判断 3. 群的阶,元素的阶,它们的相互关系 4. 同态,同构,核子群 2.1群的定义 定义:设G是一非空集合。如果在G上定义了一个代数运算,称为乘法,记为ab,而且这个运…

Ubuntu18.04 OpenSSH升级

升级前版本: rootecs-m2eqyb:/opt# ll total 20912 drwxr-xr-x 2 root root 4096 May 10 16:23 ./ drwxr-xr-x 24 root root 4096 May 10 14:38 ../ -rw-r--r-- 1 root root 1848766 May 10 16:23 openssh-9.7p1.tar.gz -rw-r--r-- 1 root root 18038…

程序包org.springframework.boot不存在

springBoot项目启动报错 程序包org.springframework.boot不存在 1、检查依赖 首先检查pom文件判断依赖是否存在 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.4.5…

二维前缀和

我们计算一维前缀和时的得心应手&#xff0c;但是到二维前缀和就有点力不从心了&#xff0c;这里总结了一下规律&#xff1a; 计算二维前缀和时我喜欢从下标为1的时候开始&#xff1a; per[i][j]per[i][j-1]per[i-1][j]-per[i-1][j-1]a[i][j]; i表示行&#xff0c;j表示列,i和…

嵌入式进阶——舵机控制PWM

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 舵机信号线代码示例初始化PWM初始化UART打印日志初始化外部中断Extimain函数 舵机最早用于船舶上实现转向功能,由于可以通过程序连…

Go使用结构体实现类(面向对象)

前置 package main ​ import ("fmt" ) ​ // 矩形结构体 type Rectangle struct {Length intWidth int } ​ // 计算矩形面积 func (r *Rectangle) Area() int {return r.Length * r.Width } ​ func main() {r : Rectangle{4, 2}// 调用 Area() 方法&#xff0c;计…

BUUCTF-WEB3

[极客大挑战 2019]Knife1 1.打开附件链接 一句话木马eval($_POST["Syc"]); 2.中国蚁剑 用中国蚁剑连接 在根目录下找到一个名为flag的文件 3.得到flag [极客大挑战 2019]Upload1

gcc g++不同版本切换命令

sudo update-alternatives --config g sudo update-alternatives --config gcc ubuntu20.04 切换 gcc/g 版本_ubuntu降低g版本-CSDN博客

Python零基础-中【详细】

接上篇继续&#xff1a; Python零基础-上【详细】-CSDN博客 目录 十、函数式编程 1、匿名函数lambda表达式 &#xff08;1&#xff09;匿名函数理解 &#xff08;2&#xff09;lambda表达式的基本格式 &#xff08;3&#xff09;lambda表达式的使用场景 &#xff08;4&…

Linux -- 进程间通信的五种方式

IPC&#xff08;InterProcess Communication&#xff09;的方式通常有管道&#xff08;包括无名管道和命名管道&#xff09;、消息队列、信号量、共享存储、Socket、Streams等。其中Socket和Stream支持不同主机上的两个进程IPC。 管道&#xff08;Pipes&#xff09;&#xff1a…

【数据库】基于PyMySQL连接并使用数据库(代码示例)

这里写目录标题 前言1、安装PyMySQL2、打开要连接的数据库3、创建数据库连接4、获取数据库版本5、新建数据库表6、向表中插入数据7、查询表中的相关记录8、更新表中的相关记录9、删除表中的相关记录10、关闭游标和连接完整代码 前言 本文演示了如何基于PyMySQL使用代码来创建数…

线性模型--普通最小二乘法

线性模型 一、模型介绍二、用于回归的线性模型2.1 线性回归&#xff08;普通最小二乘法&#xff09; 一、模型介绍 线性模型是在实践中广泛使用的一类模型&#xff0c;该模型利用输入特征的线性函数进行预测。 二、用于回归的线性模型 以下代码可以在一维wave数据集上学习参…

java内存模型介绍

Java内存模型&#xff08;Java Memory Model&#xff0c;JMM&#xff09;是一种规范&#xff0c;它定义了Java虚拟机&#xff08;JVM&#xff09;如何在内存中存储和访问Java对象的方式&#xff0c;以及多个线程如何访问这些对象时的规则。它的主要目标是定义程序中的各个线程如…

Python语言绘制好看的小提琴图、箱形图、散点图、山脊图和柱状图等等

废话不多说&#xff0c;今天给大家分享一个&#xff0c;使用python绘制小提琴图、箱形图、散点图、山脊图和柱状图等等 图中的数据是随机生成的&#xff0c;图例&#xff0c;图注以及坐标题目各种信息&#xff0c;具体内容大家可以自己修改~ 效果图如下所示 &#x1f447;&a…

ML307R OpenCPU 数据保存文件系统fs使用

一、函数介绍 二、实现数据保存 三、代码下载地址 一、函数介绍 以下是cm_fs.h里面的函数介绍 /*** brief 文件指针定位** param [in] fd 文件描述符* param [in] offset 指针偏移量* param [in] base 偏移起始点&#xff0c;CM_FS_SEEK_SET&#xff1a;文件开头 CM_FS…

Keras深度学习框架第二十讲:使用KerasCV中的Stable Diffusion进行高性能图像生成

1、绪论 1.1 概念 为便于后文讨论&#xff0c;首先进行相关概念的陈述。 Stable Diffusion&#xff1a;Stable Diffusion 是一个在图像生成领域广泛使用的技术&#xff0c;尤其是用于文本到图像的转换。它基于扩散模型&#xff08;Diffusion Models&#xff09;&#xff0c;这…

leecode 637 二叉树的层平均值

leetcode 二叉树相关-层序遍历专题 二叉树的层序遍历一般来说&#xff0c;我们是利用队列来实现的&#xff0c;先把根节点入队&#xff0c;然后在出队后将其对应的子节点入队&#xff0c;然后往复此种操作。相比于二叉树的遍历递归&#xff0c;层序遍历比较简单&#xff0c;有…

AlexNet论文解析—ImageNet Classification with Deep Convolutional Neural Networks

AlexNet论文解析—ImageNet Classification with Deep Convolutional Neural Networks 2012 研究背景 认识数据集&#xff1a;ImageNet的大规模图像识别挑战赛 LSVRC-2012&#xff1a;ImageNet Large Scale Visual Recoanition Challenge 类别训练数据测试数据图片格式Mnist1…