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

news/2024/7/21 5:46:33 标签: python, excel, 开发语言

        处理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。

python">import pandas as pd

df_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 代表行内容。

python">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"(还未实际生效)。

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

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

写回Excel文件

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

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

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


http://www.niftyadmin.cn/n/5356433.html

相关文章

迈向IT精英:揭秘中国IT行业最具含金量的认证证书

随着信息技术行业的迅猛发展,IT专业人员的证书已成为衡量个人技能和提升职业竞争力的一把尺子。在茫茫证书海中,哪些证书真正具有高含金量,能为职业生涯加分?本文为您全面解密。 IT行业认证证书的价值与作用 IT行业证书不仅仅是…

【操作系统·考研】虚拟内存管理

1.概述 传统存储管理方式具有两个特征 一次性:作业必须一次性全部装入内存后,才能开始运行。驻留性:作业被装入内存后,就一直驻留在内存中,在其运行期间作业的任何部分都无法被换出。 显然,这两个特性非…

【论文解读】Collaboration Helps Camera Overtake LiDAR in 3D Detection

CoCa3D 摘要引言Collaborative Camera-Only 3D DetectionCollaborative depth estimationCollaborative detection feature learning 实验结论和局限 摘要 与基于 LiDAR 的检测系统相比,仅相机 3D 检测提供了一种经济的解决方案,具有简单的配置来定位 3…

gdp调试—Linux

目录 介绍 使用 介绍 代码分为debug模式和release模式 如果一份代码要被调试,这份代码必须是debug Linux下编译代码默认是是release模式 如果你想代码是debug模式 必须加上 - g 小提: vim默认:命令模式 gcc默认:releas…

vue动态样式的几种写法

动态style:(多个用逗号隔开) :style"{color: item.active ? #E6A23C : #333333,font-size:item.active?20px:10px}" 动态class: 1.单个限制条件 :class"{active:activeWeek index 1}" 或者写成数组形式: :class"[activeWeek index …

数据结构篇-01:单调栈

单调栈是栈的一种,可以使得每次新元素入栈后,栈内的元素都保持有序(单调递增或者单调递减)。 单调栈的用途不太广泛,只处理一类典型的问题,比如[下一个更大元素]、[上一个更小元素] 等。 在本文中&#x…

JSP仓储管理系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc

一、源码特点 JSP仓储管理系统系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库 ,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008&#x…

1 月 30 日算法练习-思维和贪心

文章目录 重复字符串翻硬币乘积最大 重复字符串 思路&#xff1a;判断是否能整除&#xff0c;如果不能整除直接退出&#xff0c;能整除每次从每组对应位置中找出出现最多的字母将其他值修改为它&#xff0c;所有修改次数即为答案。 #include<iostream> using namespace …