[python]使用 Pandas 处理 Excel 数据:分割与展开列操作
在数据处理的过程中,时常需要对 Excel 表格中的数据进行清洗与转换,下面介绍使用 Python 中的 Pandas 库对 Excel 文件中的数据进行操作,具体包括分割列、展开数据、清除空格以及格式转换等操作。
目标:
- 读取一个没有表头的 Excel 文件。
- 分割指定列的数据,并展开成多个行。
- 清除空格,并按空格将列数据拆分成两列。
- 删除原始列,保持数据格式整洁。
- 保存处理后的数据到新的 Excel 文件。
示例代码
import pandas as pd# 读取 Excel 文件,假设没有表头,使用 header=None 参数
df = pd.read_excel('输入数据.xlsx', header=None, engine='openpyxl')# 假设前四列是需要保留的,第五列是需要分割的列
# 对第五列(索引为4)进行分割
df[4] = df[4].str.split(',')# 使用 pandas 的 `explode` 函数展开第五列
df_expanded = df.explode(4, ignore_index=True)# 去除第五列的空格
df_expanded[4] = df_expanded[4].str.strip()# 进一步将第五列按空格分割成两列
df_expanded[['分列1', '分列2']] = df_expanded[4].str.split(' ', n=1, expand=True)# 删除原始的第五列(分割前的列)
df_expanded = df_expanded.drop(columns=[4])# 将前四列设置为文本格式
df_expanded[0] = df_expanded[0].astype(str)
df_expanded[1] = df_expanded[1].astype(str)
df_expanded[2] = df_expanded[2].astype(str)
df_expanded[3] = df_expanded[3].astype(str)# 保存处理后的数据为新的 Excel 文件
df_expanded.to_excel('output2.xlsx', index=False, header=False, engine='openpyxl')print("处理完成,结果已保存为 'output2.xlsx'")
代码解析
-
读取数据:
df = pd.read_excel('输入数据.xlsx', header=None, engine='openpyxl')使用
pd.read_excel()来读取 Excel 文件。在这个例子中,假设文件没有表头,因此设置header=None。 -
分割列:
df[4] = df[4].str.split(',')假设第五列(即索引为 4 的列)需要进行分割。我们使用
str.split(',')方法将该列的每个单元格按逗号分割成多个元素。 -
展开列:
df_expanded = df.explode(4, ignore_index=True)使用
explode()函数将第五列的列表元素展开为多行,每一行对应列表中的一个元素。 -
去除空格:
df_expanded[4] = df_expanded[4].str.strip()对展开后的列进行清理,去除多余的空格。
-
进一步分列:
df_expanded[['分列1', '分列2']] = df_expanded[4].str.split(' ', n=1, expand=True)将经过清理的第五列按空格分割为两列,并分别命名为“分列1”和“分列2”。这里我们指定
n=1,确保只按第一个空格进行分割。 -
删除原始列:
df_expanded = df_expanded.drop(columns=[4])删除原始的第五列,以确保数据格式的整洁。
-
转换数据格式:
df_expanded[0] = df_expanded[0].astype(str) df_expanded[1] = df_expanded[1].astype(str) df_expanded[2] = df_expanded[2].astype(str) df_expanded[3] = df_expanded[3].astype(str)将前四列的数据转换为字符串格式,以避免格式不一致。
-
保存结果:
df_expanded.to_excel('output2.xlsx', index=False, header=False, engine='openpyxl')最后,将处理后的数据保存为新的 Excel 文件。这里我们指定不保存索引和表头,保持数据格式简洁。
结果
处理完成后,新的 Excel 文件 output2.xlsx 中包含了处理后的数据,其中原来的第五列被分割并展开为新的列
下面提供一个输入数据的示例,并展示经过处理后的输出数据。
输入数据 (输入数据.xlsx)
假设输入数据是一个没有表头的 Excel 文件,内容如下:
| 列1 | 列2 | 列3 | 列4 | 列5 |
|---|---|---|---|---|
| A | B | C | D | 1, John Doe |
| E | F | G | H | 2, Jane Smith |
| I | J | K | L | 3, Alice Brown |
| M | N | O | P | 4, Bob White |
其中,第五列的数据需要被分割和展开。该列中的内容为由逗号和空格分隔的姓名,接下来对其进行分割
处理步骤
- 将第五列按逗号
,分割成多个元素。 - 使用
explode将分割后的元素展开为多行。 - 去除空格,并根据空格进一步将名字和姓氏拆分为两个新的列。
输出数据 (output2.xlsx)
处理后的数据如下:
| 列1 | 列2 | 列3 | 列4 | 分列1 | 分列2 |
|---|---|---|---|---|---|
| A | B | C | D | 1 | |
| A | B | C | D | John | Doe |
| E | F | G | H | 2 | |
| E | F | G | H | Jane | Smith |
| I | J | K | L | 3 | |
| I | J | K | L | Alice | Brown |
| M | N | O | P | 4 | |
| M | N | O | P | Bob | White |
说明
- 第五列被分割并展开:输入数据中的第五列(如 “1, John Doe”)被按逗号分割后,展开为多行。每行包含一个数字和一个名字。
- 进一步分割姓名:展开后的每一行,姓名(如 “John Doe”)被按空格分成了两列:“分列1” 为名字,“分列2” 为姓氏。
- 结果保存:最终的结果被保存为新的 Excel 文件
output2.xlsx。
相关文章:
[python]使用 Pandas 处理 Excel 数据:分割与展开列操作
在数据处理的过程中,时常需要对 Excel 表格中的数据进行清洗与转换,下面介绍使用 Python 中的 Pandas 库对 Excel 文件中的数据进行操作,具体包括分割列、展开数据、清除空格以及格式转换等操作。 目标: 读取一个没有表头的 Exc…...
单片机的选择因素
在选择单片机型号时,需要根据具体的应用需求来选择合适的单片机。单片机(Microcontroller Unit, MCU)是一种将计算机的主要部分集成在一个芯片上的微型计算机,它通常包括处理器、存储器、输入/输出接口等。随着技术的发展…...
软件测试兼容性测试丨分布式测试与多设备管理
本文将从分布式测试的概念、重要性以及实施方法入手,紧接着探讨多设备管理的必要性和管理策略,最后分析其对软件测试行业的前景与影响。 分布式测试简介 什么是分布式测试? 分布式测试是指将测试任务分散到不同的计算机或者设备上进行&…...
Linux驱动开发(13):输入子系统–按键输入实验
计算机的输入设备繁多,有按键、鼠标、键盘、触摸屏、游戏手柄等等,Linux内核为了能够将所有的输入设备进行统一的管理, 设计了输入子系统。为上层应用提供了统一的抽象层,各个输入设备的驱动程序只需上报产生的输入事件即可。 下…...
微服务篇-微服务保护:使用 Sentinel 来实现请求限流、线程隔离、服务熔断和 Fallback 备用方案的使用
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 微服务保护 1.1 请求限流方案 1.2 线程隔离方案 1.3 服务熔断方案 2.0 Sentinel 2.1 Sentinel 安装 2.2 微服务整合 3.0 Sentinel-请求限流 4.0 Sentinel-线程隔离…...
vscode 排除文件夹搜索
排除的文件夹 node_modules/,dist/...
设计模式学习之——装饰者模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地向一个现有的对象添加新的行为,同时又不改变其结构。 一、定义与特点 定义:装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者…...
【Vulkan入门】10-CreatePipeline
目录 先叨叨Git信息关键代码TestPipeline::Initialize() 编译运行 先叨叨 到上篇为止已经创建了FrameBuffer和RenderPass。建立Pipeline的先决条件已经具备。本篇就来创建Pipeline。 Git信息 repository: https://gitee.com/J8_series/easy-car-uitag: 10-CreatePipelineurl…...
C++11 (一)
一、 C11的发展历史 C11是C 的第二个主要版本,并且是从 C98 起的最重要更新。 它引入了大量更改,标准化了既有实践,并改进了对C程序员可用的抽象。在它最终由IS0在2011年8月12日采纳前,人们曾使用名称“C0x”,因为它曾…...
系统性能优化
一、概述 性能优化的目标:是提高系统或应用程序的响应时间、吞吐量、cpu、内存、磁盘IO、网络、流量、JVM、Tomcat、DB等方面的性能指标。 性能优化需要有一些技巧:对于整个产品或项目而言,比如可以从前端优化、后端优化、架构优化、高并发…...
IMX6ULL开发板挂载 Ubuntu 的 NFS 目录,并以交叉编译得到的hello程序进行测试
首先参考博文 https://blog.csdn.net/wenhao_ir/article/details/144404637 使得IMX6ULL开发板、PC机上的USB网卡、VMware中的Ubuntu能互相Ping 通 然后开始将Ubuntu 的 NFS 目录挂载到Ubuntu中。 为什么挂载? 答:其实是把 Ubuntu中的某个目录通过NFS网…...
Xcode模拟器运行报错:The request was denied by service delegate
Xcode模拟器运行报错:The request was denied by service delegate 造成的原因: (1)新的苹果M系列芯片的Mac电脑 (2)此电脑首次安装启动Xcode的应用程序 (3)此电脑未安装Rosetta 2 解决方法: …...
ubuntu18.04配置实时内核
ubuntu系统:18.04 当前内核:5.4.0-84-generic 待安装实时内核: 5.6.19-rt11 1、查看当前版本 uname -r 2、下载内核与补丁 一种方式从官网自己下载 官方内核下载地址官方补丁下载地址阿里镜像内核下载地址(速度快࿰…...
Unity中Mesh重叠顶点合并参考及其应用
在Unity中,如果将一个模型文件(比如从max里面导出一个fbx文件)导入到编辑器中之后,Unity会把所有在原来在面列表中公用的顶点复制一份,保证每个三角形使用的顶点都是单独的,不与其它三角形共用顶点…...
倚光科技助力自由曲面设计与加工
近年来,自由曲面因其在光学、汽车、航空航天等领域的广泛应用,受到设计师和工程师的高度关注。自由曲面作为一种具有更高自由度的非球面透镜,能够在光学系统中实现更加精确的光线控制,优化像差校正,并且在满足功能需求…...
PWM调节DCDC参数计算原理
1、动态电压频率调整DVFS SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。 比如某SOC在…...
[Pro Git#3] 远程仓库 | ssh key | .gitignore配置
目录 1. 分布式版本控制系统的概念 2. 实际使用中的“中央服务器” 3. 远程仓库的理解 4. 新建远程仓库 5. 克隆远程仓库 6. 设置SSH Key 实验 一、多用户协作与公钥管理 二、克隆后的本地与远程分支对应 三、向远程仓库推送 四、拉取远程仓库更新 五、配置Git忽略…...
Freertos任务切换
一、操作系统进行任务切换的时机: 采用信号量实现任务的互斥: 二、FreeRTOS 任务切换场合 PendSV 中断的时候提到了上下文(任务)切换被触发的场合: ● 可以执行一个系统调用 ● 系统滴答定时器(SysTick)中断。 1、执行系统调用 执行系统…...
go开发中interface和方法接收器的使用
Go 语言中的接口和方法接收器学习 Go 中的 interface 就像是一个神奇的魔法杖,能让你轻松地将不同的类型拉到同一个阵营里。与其他语言的接口不同,Go 的接口无需显式声明“我实现了你”,只要你满足了接口规定的方法,Go 就会自动认…...
vue3-tp8-Element:对话框实现
效果 参考框架 Dialog 对话框 | Element Plus 具体实现 一、建立view页面 /src/views/TestView.vue 二、将路径写入路由 /src/router/index.js import { createRouter, createWebHistory } from vue-router import HomeView from ../views/HomeView.vueconst router create…...
腾讯扔了个王炸:Marvis,每天送你1000万Token的AI管家
昨天,腾讯悄悄上线了一个东西。 没有发布会,没有雷军式的演讲,没有"遥遥领先"的排比句。 就是官网开了,下载链接放出来了。 但我试用了一天之后,想跟你说一句:这可能是我2026年见过最猛的AI产品。 它叫 Marvis(马维斯)。 01 先别急着"又一个AI助手&…...
Claude Code、Cursor、Codex到底是什么?法律人AI开发工具全解析
一、AI IDE是什么?从代码编辑器到智能助理AI IDE AI 集成开发环境(IDE)。传统IDE如VS Code、IntelliJ,开发者需要手动编写每一行代码、查阅文档、编写测试用例。AI IDE则让开发者用自然语言下达指令,AI理解整个项目结…...
跟着 MDN 学CSS day_7:(层叠优先级与继承)
CSS的全称是层叠样式表(Cascading Style Sheets),其中"层叠"这个词绝非随意选用的。理解层叠、优先级和继承这三个核心概念,是真正掌握CSS的关键所在。当你发现某个样式没有按预期生效时,十有八九是这三个机…...
Windows热键冲突终极指南:如何用Hotkey Detective快速定位“键盘小偷“
Windows热键冲突终极指南:如何用Hotkey Detective快速定位"键盘小偷" 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey…...
预训练模型技术演进史:从Word2Vec到多模态大模型
1. 项目概述:这本“沙滩读物”到底在讲什么? “Beach Reading: a Short History of Pre-Trained Models”——光看标题,你可能会以为这是本躺在夏威夷躺椅上、椰子水还没喝完就能翻完的轻松小册子。但别被“Beach Reading”这个温柔前缀骗了。…...
利用 AI Agent 优化日常办公自动化流程
AI Agent优化办公自动化流程的核心逻辑是「人定规则,AI跑流程」,通过把重复、步骤明确的工作交给AI Agent自主执行,实现提效降本,具体可以按照以下方法落地:一、先明确落地逻辑把目标工作拆成「触发条件→执行步骤→…...
Windows Defender 移除工具:企业级安全组件深度卸载与系统优化技术指南
Windows Defender 移除工具:企业级安全组件深度卸载与系统优化技术指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.co…...
如何快速实现微信小游戏开发:weapp-adapter的完整实践指南
如何快速实现微信小游戏开发:weapp-adapter的完整实践指南 【免费下载链接】weapp-adapter weapp-adapter of Wechat Tiny Game in ES6 项目地址: https://gitcode.com/gh_mirrors/we/weapp-adapter 对于熟悉Web前端开发的程序员来说,微信小游戏开…...
OBS-VST插件完整指南:5分钟让直播音频秒变专业的终极方案
OBS-VST插件完整指南:5分钟让直播音频秒变专业的终极方案 【免费下载链接】obs-vst Use VST plugins in OBS 项目地址: https://gitcode.com/gh_mirrors/ob/obs-vst 想在OBS Studio中免费获得专业级音频处理效果吗?OBS-VST插件正是你需要的解决方…...
AI双轨制实战指南:MoE架构、异构模态与弹性推理的工程落地
1. 这不是新闻简报,而是一份AI地缘技术格局的实操观察手记你点开这篇文字,大概率不是为了读一篇“本周AI大事件汇总”。如果你真需要那种信息,直接刷Twitter或Hugging Face的Weekly Digest就够了。我写这个,是因为过去三个月里&am…...
