当前位置: 首页 > 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…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...