当前位置: 首页 > news >正文

Pandas处理Excel文件的实用指南 - Python开发技巧XI

        处理Excel文件是数据分析师日常工作中的常见任务之一。

        幸运的是,Python的Pandas库提供了一套强大的工具,使得读取、处理和写入Excel文件变得既清晰又快捷。

        在本篇博客中,我们将探讨如何使用Pandas的 read_excel 方法来读取Excel文件,以及如何遍历和修改DataFrame中的数据。


安装

openpyxl是因为pandas读完excel需要。

pip install openpyxl 
pip install pandas

读取

导入Pandas库,并使用 read_excel 方法来读取Excel文件。需要注意的是,对于 .xlsx 文件,我们需要指定 engine='openpyxl'(默认xlrd),因为Pandas需要一个额外的库来处理这种格式的文件。

字段格式的锁定可以使用 dtype,

锁定sheet可以使用 sheet_name。

import pandas as pddf_map = pd.read_excel(io="excels/xxx.xlsx",engine='openpyxl')
# len(df_map)  # 读取df的行数据# 有时,excel里的字符串型数字,在read_excel读取时可能会被识别成int整型,这时候可以设置dtype:
df_map = pd.read_excel(io="excels/xxx.xlsx",dtype={'列字段A': str},engine='openpyxl'
)# 锁定sheet有两种方式,比如第二个sheet名称为sheet2
#(1)索引式,索引从零开始
df_map = pd.read_excel(io="excels/xxx.xlsx",engine='openpyxl',sheet_name=1 
)
#(2)直接sheet名称(推荐)
df_map = pd.read_excel(io="excels/xxx.xlsx",engine='openpyxl',sheet_name='sheet2'
)

遍历DataFrame

        Pandas的DataFrame对象提供了 iterrows() 方法,允许我们遍历DataFrame中的每一行。在遍历过程中,index 代表行索引,而 row 代表行内容。

for index, row in df_map_kpi.iterrows():if not pd.isnull(row["列字段A"]):  # isnull判断是否为空,不能直接用Python对象判空形式print(row["列字段A"])    else:df_map.at[index, "列字段A"] = "A"  # 修改改行某行数据

        例子中,检查了 "列字段A" 是否为空。如果不为空,打印出该值;如果为空,我们将其设置为 "A"(还未实际生效)。

        同时判断多列是否同时都为空或有一个为空。

row_list = [row["列字段A"], row["列字段B"], row["列字段C"]]
# 是否全部为空
pd.isnull(row_list).all()
# 是否有一个为空
pd.isnull(row_list).any()

写回Excel文件

通常会设置 index=False 来防止将行索引写入文件

# 将修改后的DataFrame写回Excel文件(这里使修改生效)
df.to_excel('excels/xxx.xlsx', index=False)

Pandas是一个功能强大的数据处理工具,帮助高效地处理Excel文件。无论是读取数据、遍历DataFrame还是写入更改,Pandas都能提供简洁的解决方案。

相关文章:

Pandas处理Excel文件的实用指南 - Python开发技巧XI

处理Excel文件是数据分析师日常工作中的常见任务之一。 幸运的是,Python的Pandas库提供了一套强大的工具,使得读取、处理和写入Excel文件变得既清晰又快捷。 在本篇博客中,我们将探讨如何使用Pandas的 read_excel 方法来读取Excel文件&#x…...

泰克示波器(TBS2000系列)触发功能使用讲解——边沿触发

# Trigger区域 触发区域用于对触发功能进行配置。示波器的触发功能用于采集(Acquire)那些在瞬间出现的信号,便于我们分析观察,此时可以当做逻辑分析仪使用。触发区域按钮包括:menu、Level\Force Trig三个。 目录 1.1 …...

C++学习Day01之C++对C语言增强和扩展

目录 一、程序及输出1.1 全局变量检测增强1.2 函数检测增强1.3 类型转换检测增强1.4 struct增强1.5 bool类型扩展1.6 三目运算符增强1.7 const增强1.7.1 全局Const对比1.7.2 局部Const对比1.7.3 Const变量初始化数组1.7.3 Const修饰变量的链接性 二、分析总结 一、程序及输出 …...

【文件上传WAF绕过】<?绕过、.htaccess木马、.php绕过

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…...

flutter如何实现省市区选择器

前言 当我们需要用户填写地址时,稳妥的做法是让用户通过“滚轮”来滑动选择省份,市,区,此文采用flutter的第三方库来实现这一功能,比调用高德地图api简单一些。 流程 选择库 这里我选择了一个最近更新且支持中国的…...

Python——将Pyaudio的frame音频数据转换成wave格式

要将pyaudio捕获的音频帧(frame)数据转换成wave模块可以直接处理的格式,通常意味着你需要将这些音频帧数据组装成一个完整的音频流,并确保它们以wave模块期望的格式进行存储。但是,如果你的目的是将这些帧数据直接转换…...

Vue 上门取件时间组件

本文使用vue2.0elementui 制作一个上门取件时间组件,类似顺丰,样式如下: 大概功能:点击期望上门时间,下面出现一个弹框可以选择时间: 首先我们定义一些需要的数据: data() {return {isDropdown…...

学习python第一天

1.输出 print("Hello, World!") 2.退出命令提升符 exit() 3.Python 缩进 实例 if 5 > 2:print("Five is greater than two!") 空格数取决于程序员,但至少需要一个。 您必须在同一代码块中使用相同数量的空格,否则 Python 会…...

interface转string输出打印

文章目录 前言一、interface 转json再转string二、使用类型判断 前言 在开发过程中,有时我们使用interface类型接受某些参数接口或返回类型,但输出时,比如记录日志时存在很多不方便情况,输出string发现输出的乱七八糟&#xff0c…...

如何在PS5上使用金手指修改游戏

环境:windows PS5 问题:PS5 没有GodHen,无法使用json金手指,PKG金手指比较少 解决办法:使用MultiTrainerv从网络注入PS5,修改进程内存 背景:为了护肝,拒绝刷刷刷 解决过程&#xff…...

M1芯片MAC 安装MySQL、Nacos遇到的问题

摘要:由于电脑上是M1芯片,安装软件时遇到一系列问题,记录下踩的坑!!! 安装MySQL MySQl官网下载链接区分ARM和X86架构,终端输入uname -a指令,本机显示为ARM czhczhdeiMac ~ % uname…...

尝试创建若依系统项目(vue3+element-plus+vite) 持续更新...

若依官网:RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|Spri…...

Pytest测试用例参数化

pytest.mark.parametrize(参数名1,参数名2...参数n, [(参数名1_data1,参数名2_data1...参数名n_data1),(参数名1_data2,参数名2_data2...参数名n_data2)]) 场景: 定义一个登录函数test_login,传入参数为name,password,需要用多个账号去测试登录功能 # …...

【Vue】指令之显示切换,属性绑定

Vue指令【2】 显示切换与属性绑定v-show指令v-if指令v-bind指令 显示切换与属性绑定 v-show指令 作用&#xff1a;根据真假切换元素的显示状态 指令后的内容最终都会解析为布尔值数据改变之后&#xff0c;对应元素的显示状态会同步更新 语法&#xff1a; <div id"…...

Z字型遍历二叉树

编码过程 掏出Deque&#xff0c;先写从左往右遍历 class Solution {public List<List<Integer>> zigzagLevelOrder(TreeNode root) {Deque<TreeNode> deque new ArrayDeque<>();deque.offer(root);while (!deque.isEmpty()) {int n deque.size();f…...

【Go语言成长之路】安装Go

文章目录 安装Go一、下载Go语言安装包二、删除以前安装的Go版本三、添加/usr/local/go/bin到环境变量内四、确认安装成功 安装Go Note: 这里只演示安装Linux版本的Go&#xff0c;若为其它版本&#xff0c;请按照官网的安装教程进行安装即可。 一、下载Go语言安装包 ​ 在浏览…...

C语言常见面试题:C语言中如何进行图形界面编程?

在C语言中进行图形界面编程通常需要借助一些图形库。以下是一些常用的C语言图形库及其使用方法&#xff1a; GTK (GIMP Toolkit)&#xff1a; GTK 是一个广泛使用的开源图形库&#xff0c;可用于创建跨平台的桌面应用程序。它提供了一套丰富的控件&#xff0c;如按钮、文本框、…...

删除元素(数组)

题目描述 输入一个递增有序的整型数组A有n个元素&#xff0c;删除下标为i的元素&#xff0c;使其仍保持连续有序。注意&#xff0c;有效下标从0开始。 定义如下两个函数分别实现删除元素操作和数组输出操作。 void del(int a[], int n, int i); /*删除数组a中下标为i的元素*…...

WPF DataTemplate内重写BorderBrush,VisualBrush内数据源绑定提示绑定失败

定义DataTemplate 数据模板文件&#xff0c;内容如下 <DataTemplate x:Key"{DataTemplateKey {x:Type VM:TemplateListVM}}" DataType"{x:Type VM:TemplateListVM}"> <Grid Margin"0" Grid.Row"3" Height"50" Ver…...

ElasticSearch搜索与分析引擎-Linux离线环境安装教程

目录 一、下载安装包 网盘链接: 二、安装流程及遇到的问题和解决方案 &#xff08;1&#xff09;JDK安装 &#xff08;2&#xff09;Elasticsearch安装 &#xff08;3&#xff09;Kibana安装 ​&#xff08;4&#xff09;Ik分词器安装 三、启动过程中的问题 &#xff…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...