pandas字符串操作(上)

目录

数据预览:

一、split分割列

1.需求:

2.完整代码展示

3.讲解

(1)分割

(2)写入

4.效果展示

二、partition分割列

1.需求:

2.完整代码展示

3.讲解

(1)分割

(2)写入

4.效果展示

三、合并列

1.需求:

2.完整代码展示

3.讲解

4.效果展示

四、get获取指定位置字符

1.需求:

2.完整代码展示

3.讲解

4.效果展示

五、slice获取指定位置字符

1.需求:

2.完整代码展示

3.讲解

4.效果展示

六、join用指定字符连接每一个字符

1.需求:

2.完整代码展示

3.讲解

4.效果展示

源数据网盘链接:


数据预览:

以下操作示例均用的此数据

一、split分割列

1.需求:

将日期列分割为年、月、日三列

2.完整代码展示

import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
all_date=data['日期'].astype(str).str.split("-",expand=True)
data['年']=all_date[0]
data['月']=all_date[1]
data['日']=all_date[2]
print(data)

3.讲解

(1)分割

all_date=data['日期'].astype(str).str.split("-",expand=True)

我们首先要以一个变量接收分割的列,并且由于此函数是应用于字符串的,所以需要用astype(str)转换日期为字符串,以需求为例,我们需要按照“-”分割,即split("-",expand=True),expand=True的作用是将分割来的内容单独放在一列上,如果不写这一参数的话,分割的内容还是会在一列,只不过是以列表形式呈现,如图:

(2)写入

data['年']=all_date[0]
data['月']=all_date[1]
data['日']=all_date[2]

然后需要创建年月日三列并将数据写入,我们已经用一个变量来接收分割好的日期,那么我们可以把分割好的数据理解为一个列表中的三块内容,年这一列即为第一块all_date[0]月这一列即为第二块all_date[1]日这一列即为第三块all_date[2]。

4.效果展示

二、partition分割列

此函数不同于split,partition只能按照第一个符合分割标准的字符进行分割

1.需求:

将日期分为月日两列

2.完整代码展示

import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
all_date=data['日期'].astype(str).str.partition('-')
data['年']=all_date[0]
data['月日']=all_date[2]
print(data)

3.讲解

过程大概和split是一样的,都是先分割再写入

(1)分割

all_date=data['日期'].astype(str).str.partition('-')

我们仍然以一个变量接收分割的列,转换日期为字符串 ,以“-”作为分割标准。

(2)写入

data['年']=all_date[0]
data['月日']=all_date[2]

大家看到我标红部分的时候是否感到奇怪:月日不应该是all_date[1]吗?大家看下图就明白了

对,partition方法和split的另一个不同就是这里了,split中作为分割标准的“-”是直接省略不写的,然而在partition中分隔符却是自称一列,所以all_date[1]代表的是“-”,而不是我们需要的月日,月日应该是all_date[2]

4.效果展示

三、合并列

1.需求:

将省、市、区三列合并为一列

2.完整代码展示

import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data['地址']=data['省']+data['市']+data['区']
print(data)

3.讲解

此效果的实现是非常简单的,只需要将要合并的列用“+”相加

4.效果展示

四、get获取指定位置字符

1.需求:

比如我想知道大家的年龄都是几十,20+?30?40+?即我们需要提取年龄的第一个数

2.完整代码展示

import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data["年龄第一个数"]=data['年龄'].astype(str).str.get(0)
print(data)

3.讲解

data["年龄第一个数"]=data['年龄'].astype(str).str.get(0)

由于年龄列的类型是int,所以我们首先应该将其转换为字符串类型,然后利用get(0)获取第一个数 

4.效果展示

五、slice获取指定位置字符

1.需求:

获取日期列中的月日

2.完整代码展示

import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data["月日"]=data['日期'].astype(str).str.slice(5,10)
print(data)

3.讲解

data["月日"]=data['日期'].astype(str).str.slice(5,10)

第一步仍然是将日期转换为字符串类型,slice这一函数和get的不同在于get只能获取一个字符,而slice可以获取多个slice(起始位置,结束位置,步长),其中所取字符不包括结束位置的字符,而且用slice_replace(起始位置,结束位置,替换值)还能替换选中位置的字符

4.效果展示

六、join用指定字符连接每一个字符

1.需求:

将姓名中的每个字用“*”连接(这个需求可能看着不合理,但是我也实在想不出这个函数有什么应用场景了,大家如果有好的想法可以在评论区告诉我哦~)

2.完整代码展示

import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data["姓名2"]=data['姓名'].str.join("*")
print(data)

3.讲解

data["姓名2"]=data['姓名'].str.join("*")

这个函数应用很简单,只需要将想要设置的连接字符写入即可 

4.效果展示

源数据网盘链接:

链接:https://pan.baidu.com/s/1xeCmsDTcEHa6rRjJJVGu6g 
提取码:1234

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

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

相关文章

推荐系统模型(一) DFN 详解 Deep Feedback Network for Recommendation

背景 在大多数的推荐系统中,往往注重于隐式正反馈(例如:点击),而忽略掉用户的其他行为(例如大多数CTR模型只考虑用户的喜欢,而忽略了不喜欢)。腾讯在Deep Feedback Network for Recommendation 一文中,提出了一个新颖…

【网络安全】【密码学】【北京航空航天大学】实验一、数论基础(上)【C语言和Java实现】

实验一、数论基础(上) 一、实验目的 1、通过本次实验,熟悉相关的编程环境,为后续的实验做好铺垫; 2、回顾数论学科中的重要基本算法,并加深对其的理解,为本学期密码学理论及实验课程打下良好…

蓝桥杯备赛 | 洛谷做题打卡day5

蓝桥杯备赛 | 洛谷做题打卡day5 图论起航,一起来看看深(广)度优先吧 ~ 文章目录 蓝桥杯备赛 | 洛谷做题打卡day5图论起航,一起来看看深(广)度优先吧 ~【深基18.例3】查找文献题目描述 输入格式输出格式样例…

易基因:表观遗传学和表观转录组修饰在植物金属和准金属暴露中的作用 | 抗逆综述

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 非必需金属(non-essential metal)和准金属(metalloid,也称类金属)对土壤的污染是全球许多地区面临的严重问题。这些非必需金属…

python 爬虫 生成markdown文档

本文介绍的案例为使用python爬取网页内容并生成markdown文档,首先需要确定你所需要爬取的框架结构,根据网页写出对应的爬取代码 1.分析总网页的结构 我选用的是redis.net.com/order/xxx.html (如:Redis Setnx 命令_只有在 key 不存在时设置 key 的值。…

【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (5) - Unity Catalog 简介 UC的关键特性 之所以DataBricks要用UC, 很大程度是对安全的管控。从上文可以了解到它的四大特性&#…

C++ OJ基础

C OJ基础 在学校学习C程序设计基础课程的OJ题目 缺少第二十题 这里写目录标题 C OJ基础习题练习(一)打印图形习题练习(二)数据的输入输出习题练习(三)函数重载习题练习(四)设计矩形类习题练习(五)定义Tree类习题练习(六)完善职工工资类Salary的设计习题练习(七)设计矩形类recta…

双目测距工程Stereo-Vision-master学习笔记

硬件: 首先要要把两个摄像头固定到支架上,并且两个摄像头的间距应该在110mm,两个摄像头没有落差 相机的内参数包括焦距、主点坐标、像素尺寸等,这些参数决定了相机成像的几何变换关系。内参数是相机固有的属性,不会随…

UE5 UE4 修复GPU驱动程序崩溃

原贴链接:https://mp.weixin.qq.com/s/e5l9XtfwEFWgwhHi1b2idg UE5 UE4在处理含有大量图形的项目时,你有可能会遇到GPU崩溃 可以通过修改注册表,修复崩溃。 GPU崩溃情况概述 UE5 UE4在处理含有大量图形的项目时,你有可能会遇到G…

通过生成mcs、bin文件将程序固化到FPGA

通过将程序固化到FPGA,可以做到断电不丢失程序,上电之后就自动启动程序的作用,整个固化步骤主要分为3步,一是修改约束文件,二是生成mcs或bin文件,三是将程序固化到开发板flash 1.修改约束文件 生成固化文…

弟12章 网络编程

文章目录 网络协议概述 p164TCP协议与UDP协议的区别 p165TCP服务器端代码的编写 p166TCP服务器端流程 TCP客户端代码的编写 p167TCP客户端流程主机和客户端的通信流程 tcp多次通信服务器端代码 p168TCP多次通信客户端代码 p169UDP的一次双向通信 p170udp通信模型udp接收方代码u…

Git核心知识总结

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 工具教程 ✨特色专栏: MyS…

车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 基本假设 4.2 运动学方程 5.完整工程文件 1.课题概述 车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程. 2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a .…

【HarmonyOS】消息通知场景的实现

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

adb 常用命令汇总

目录 adb 常用命令 1、显示已连接的设备列表 2、进入设备 3、安装 APK 文件到设备 4、卸载指定包名的应用 5、从设备中复制文件到本地 6、将本地文件复制到设备 7、查看设备日志信息 8、重启设备 9、截取设备屏幕截图 10、屏幕分辨率 11、屏幕密度 12、显示设备的…

Druid连接池报错

网上各种方法都试了,基本都不行,后来改了一下jar包版本,也就是第四点,才解决。 1、druid.properties文件位置 我学的时候说的是任意位置都行,除了web目录下,但是我试的时候必须要放在resources 文件夹下。…

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(5)登录认证

指路(1)(2)(3)(4)👇 黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(1)准备工作、部门管理_tlias智能学习辅助系统的需求分析-CS…

python学习笔记10(选择结构2、循环结构1)

(一)选择结构2 1、if……else……语句 #(1)基本格式 numbereval(input("请输入您的6位中奖号码:")) if number123456:print("恭喜您,中奖了") else:print("未中奖")#&…

2024美赛数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模式树算法&#xff0c…

深度解析JVM类加载器与双亲委派模型

概述 Java虚拟机(JVM)是Java程序运行的核心,其中类加载器和双亲委派模型是JVM的重要组成部分。本文将深入讨论这两个概念,并解释它们在实际开发中的应用。 1. 什么是类加载器? 类加载器是JVM的一部分,负…