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都能提供简洁的解决方案。

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

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

相关文章

高性能跨平台网络通信框架 HP-Socket v6.0.1

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4592706661.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v6.0.1 更新 一、主要更新 优化Linux通信组件多路复用处理架构,避免“惊群”问…

AI赋能编程 | 自动化工具助力高效办公

前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言泡泡AI工具卡片思维导图Markdown编辑器 其他工具文件免费处理工具结语 合集…

【大厂AI课学习笔记】1.3 人工智能产业发展(3)

1.3.1 供给侧 技术层面:从实验室走向大规模的商用。 数据层面:数据正式成为重要的生产要素。 市场:供需互促的正向市场环境建立。 资本:走出炒作泡沫,聚焦价值领域。 平台:大厂普遍开放生态。 MORE&am…

2024-01-31-好的技术文章汇总

一、SpringBoot 相关 Spring Boot 项目统一结果,统一异常,统一日志,写的太好了! 链接:https://mp.weixin.qq.com/s/wtWOhBpv1jD51C-SkkST5w 二、解决方案 服务端如何防止重复支付: https://mp.weixin.q…

Uni-app 如何上传文件, 使用的API是什么

在uni-app中上传文件的方法有很多,其中一种常用的方法是使用wx.uploadFile() API。该API可以上传本地文件或网络文件,并支持设置请求头、请求参数等选项。 一.引入API import { uploadFile } from /util/request.js;二.使用API 上传文件 uploadFile({…

基于二值化图像转GCode的螺旋扫描实现

基于二值化图像转GCode的螺旋扫描实现 什么是双向扫描螺旋扫描代码示例 基于二值化图像转GCode的螺旋扫描实现 什么是螺旋扫描 螺旋扫描(Spiral Scanning)是激光雕刻中一种特殊的扫描方式,其特点是激光头按照螺旋形状逐渐向外移动&#xf…

【web | CTF】攻防世界 easyupload

天命:好像也不太easy 目录 步骤一:准备文件 步骤二:上传文件 本条题目有好几个防御点: 后缀名防御:只能上传图片格式内容防御:内容不能有php图片头防御:检测文件的头部信息,是否是…

DevOps 演进:如何通过内部开发者平台(IDP)实现开发人员自助服务

自助服务是开发人员更快更好地创新的一种方式,同时降低业务风险。以下是设置内部开发平台 (IDP) 时该做什么和不该做什么。 如何实现开发人员自助服务是越来越多的企业目前正在努力的方向(也被熟知为平台工程),他们将其作为最大限…

zookeeper(2) 服务器动态上下线监听和分布式锁案例

案例一:服务器动态上下线监听 某分布式系统中,主节点可以有多台,可以动态上下线,任意一台客户端都能实时感知 到主节点服务器的上下线。 1.服务端代码 package com.atguigu.case1;import org.apache.zookeeper.*;import java.io…

C++ //练习 3.28 下列数组中元素的值是什么?

C Primer(第5版) 练习 3.28 练习 3.28 下列数组中元素的值是什么? string sa[10]; int ia[10]; int main(){string sa2[10];int ia2[10]; }环境:Linux Ubuntu(云服务器) 工具:vim 解释 sa中…

微信小程序在线客服源码系统:聊天记录云端实时保存 带完整的搭建教程

微信小程序已经成为企业开展线上业务的重要渠道。然而,在小程序中提供客户服务需要解决聊天记录的存储与查询问题。传统的客服系统往往只能在本地保存聊天记录,一旦客户端出现问题,聊天记录可能会丢失,给企业带来巨大的损失。为了…

双屏联动系统在展厅设计中的互动类型与效果

随着各项多媒体技术的快速发展,让展厅中的各类展项得到技术升级,其中作为电子设备中最基础的显示技术,不仅优化了内容的展示质量,还实现了更具互动性的创新技术,如双屏联动系统就是当前展厅设计中最常见的技术类型之一…

单据报表增加保存按钮(将单据报表的数据保存到后台表)

单据报表增加保存按钮 📣1. 需求 新建一张要存储保存数据的后台把,查出当月数据以后,可以点击保存按钮将当前月份的数据保存到后台表中。如果后台表中没有当前月份的数据,则直接保存到后台表中;如果后台表中有当前月份…

【C++】类和对象(1)

上节我们学习了C入门的一些语法知识,这篇博客来学习类和this指针。 目录 面向过程和面向对象的初步认识 类的引入 类的定义 类的访问限定符及封装 访问限定符 封装 类的作用域 类的实例化 类对象大小 this指针 this指针特性 面向过程和面向对象的初步认识…

UG949 适用于 FPGA 和 SoC 的UltraFast 设计方法指南

使用RTL创建设计 定义RTL设计层级 模块边界输出进行寄存 即寄存器输出,打一拍 IP的使用 AMBA AXI

c# Newtonsoft.Json 序列化和反序列化

1.安装 Newtonsoft.Json Nuget包 在C#中,你可以使用Newtonsoft.Json库来进行对象的序列化和反序列化,下面是一个简单的示例: using Newtonsoft.Json; using System;// 定义一个示例类 public class Person {public string Name { get; set; …

AI 原生时代的云计算

本文整理自2023年 12 月 20 日举办的「2023 百度云智大会智算大会」主论坛,百度副总裁谢广军的主题演讲《AI 原生时代的云计算》。 (视频回放链接:https://cloud.baidu.com/summit/aicomputing_2023/index.html) 大模型的到来&…

安卓之代码检查工具优劣分析以及应用场景

一、引言 代码检查工具在Android应用开发中是不可或缺的一部分,它们旨在提高代码质量、强化编程规范、消除潜在bug、提升应用性能和安全性。诸如Checkstyle、FindBugs、Infer、PMD和Android Lint等一系列工具各具特色,应用于不同的开发环节,有…

Leetcode—807. 保持城市天际线【中等】

2024每日刷题&#xff08;一零四&#xff09; Leetcode—807. 保持城市天际线 实现代码 class Solution { public:int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {int n grid.size();vector<int> row(n);vector<int> col(n);int a…

代理模式详解(重点解析JDK动态代理)

- 定义 在解析动态代理模式之前&#xff0c;先简单看下整个代理模式。代理模式分为普通代理、强制模式、动态代理模式。其中动态代理模式主要实现方式为Java JDK提供的JDK动态代理&#xff0c;第三方类库提供的&#xff0c;例如CGLIB动态代理。 代理模式就是为其他对象提供一种…