Python 高级技巧:深入解析读取 Excel 文件的多种方法

news/2024/10/5 19:58:06/文章来源:https://www.cnblogs.com/wodianpingcom/p/18448380

一、引言

 

在数据分析和处理中,经常需要从 Excel 文件中读取数据。Python 提供了多种库来实现这个功能,本文将深入探讨使用 ​​pandas​​、​​openpyxl​​ 和 ​​xlrd​​ 库读取 Excel 文件的高级技巧和代码实现。

 

二、使用 pandas 库读取 Excel 文件

 

​pandas​​ 是 Python 中强大的数据处理库,提供了方便的函数来读取 Excel 文件。

import pandas as pd# 读取 Excel 文件
df = pd.read_excel('example.xlsx')# 打印数据框的前几行
print(df.head())

三、使用 openpyxl 库读取 Excel 文件

 

​openpyxl​​ 是一个用于处理 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。

from openpyxl import load_workbook# 加载工作簿
wb = load_workbook('example.xlsx')# 获取工作表
sheet = wb.active# 遍历工作表中的数据
for row in sheet.iter_rows():for cell in row:print(cell.value)

四、使用 xlrd 库读取 Excel 文件

 

​xlrd​​ 是一个用于读取 Excel 文件的 Python 库,但它不支持 xlsx 文件格式,只支持 xls 文件格式。

import xlrd# 打开 Excel 文件
workbook = xlrd.open_workbook('example.xls')# 获取工作表
sheet = workbook.sheet_by_index(0)# 遍历工作表中的数据
for row_index in range(sheet.nrows):row_data = sheet.row_values(row_index)print(row_data)

五、处理复杂的 Excel 格式

 

在实际应用中,Excel 文件可能具有复杂的格式,如合并单元格、数据验证等。我们可以使用相应的库来处理这些情况。

# 使用 openpyxl 处理合并单元格
from openpyxl import load_workbookwb = load_workbook('example.xlsx')
sheet = wb.activemerged_cells = sheet.merged_cells.rangesfor merged_cell in merged_cells:min_row, min_col, max_row, max_col = merged_cell.min_row, merged_cell.min_col, merged_cell.max_row, merged_cell.max_coltop_left_cell_value = sheet.cell(row=min_row, column=min_col).valuefor row in range(min_row, max_row + 1):for col in range(min_col, max_col + 1):sheet.cell(row=row, column=col).value = top_left_cell_value

六、性能优化

 

当处理大型 Excel 文件时,性能可能成为一个问题。我们可以采取一些优化措施,如分块读取、只读取需要的列等。

# 使用 pandas 分块读取 Excel 文件
import pandas as pdchunk_size = 1000  # 每次读取的行数reader = pd.read_excel('large_file.xlsx', chunksize=chunk_size)for chunk in reader:# 在这里处理每一块数据print(chunk)

 本文部分代码转自:https://www.wodianping.com/app/2024-10/40486.html

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

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

相关文章

pytorch环境安装

pytorch环境安装 1.基础安装 首先安装anaconda打开,进入base,输入命令,这里-n后跟的是环境名字,再往后是python版本,不要太高 conda create -n pytorch python=3.8安装的时候有按y的就按y 创建成功后使用下面命令进入创建的环境 conda activate pytorch2.安装需要的库 pip…

[Trick] 格路记数 - 反射容斥

Perface 模拟赛不会被冲烂了。 Problem I 从 \((0,0)\) 到 \((n,m)\) 方案数。 解法: \(C(n+m,m)\)。 Problem II 从 \((0,0)\) 到 \((n,m)\) 方案,但是不能经过 \(y=x+b\) 的直线。 解法: 考虑映射法。 以一条路径第一次碰到直线的位置为起点,之后所有的路线和 \(y=x+b\) …

Burp功能 细解析

情境 第六周的培训甚是有趣, 更加详细的介绍了Burp工具的功能和使用细节. 虽然很有趣, 但是我学得很慢, 练习达到熟练掌握还需要练习. 以下是第五次培训的练习题 以及我的解答. 最后一题手生, 一开始没做出来.1、安装burp,分别在本机上实现全局代理和局部代理,提供设置过程的…

高级语言程序设计第二次作业(102400106刘鑫语)

这个作业属于课程:https://edu.cnblogs.com/campus/fzu/2024C/ 作业要求:https://edu.cnblogs.com/campus/fzu/2024C/homework/13282 学号:102400106 姓名:刘鑫语 程序清单 最初都很顺利 3.1 3.2 3.3 3.4 3.5 3.6 出现了问题但一直没能解决,回宿舍后试着改成c99 依然报错,…

快乐数学4弧度

4 弧度 我们大多数人都不知道为什么圆要有 360 度。在学习高等数学或物理时,我们会记住一个神奇的数字--“圆的大小”,并将自己设置为一个 “圆的360度”。 专家们说:“弧度让数学变得更简单!”但却没有简单的理由(涉及泰勒级数的讨论并不简单)。今天,我们将揭开弧度的真…

序列化器ser.validated_data、ser.initial_data、ser.data

class LoginPwdSerializer(serializers.Serializer):mobile = serializers.CharField(required=True, validators=[RegexValidator(r"\d{11}", message="格式错误")])password = serializers.CharField(required=True)def validate_mobile(self, value):ex…

12-网络安全审计技术原理与应用

12.1 概述 1)概念 :指对网络信息系统的安全相关活动信息进行获取、记录、存储、分析和利用的工作。 作用:在于建立“事后”安全保障措施,保存网络安全事件及行为信息,为网络安全事件分析提供线索及证据,以便于发现潜在的网络安全威胁行为,开展网络安全风险分析及管理。 …

林史语其十(101-111)【下半更新】

12345鉴于收集素材与发布素材之间有一定延迟,此后林史一章分两次更新 先把存的旧东西发一下 #101故事源于 joke3579 学长博客里一份证明,涉及到求不定积分的 如果你不知道啥是不定积分,你只需要知道它是导数逆运算就行了 学长博客里写的是 :\(A\) 求导后等于 \(B\) HDK:\(…

林史语其十(101-110)【下半更新】

12345鉴于收集素材与发布素材之间有一定延迟,此后林史一章分两次更新 先把存的旧东西发一下 #101故事源于 joke3579 学长博客里一份证明,涉及到求不定积分的 如果你不知道啥是不定积分,你只需要知道它是导数逆运算就行了 学长博客里写的是 :\(A\) 求导后等于 \(B\) HDK:\(…

CF 1805 D. A Wide, Wide Graph (*1800) 思维 + 树的直径

CF 1805 D. A Wide, Wide Graph (*1800) 思维 + 树的直径 题目链接 题意:思路: 若当前点到最远的点的距离 \(< k\) , 说明 \(x\) 自己成为一个联通块。 并且我们知道距离任意一点最远的点一定是树直径的一个端点。 反之,则与直径端点在同一个联通块。 所以一个点要么独立…

Windows应急响应-Auto病毒

Windows—Auto病毒应急思路分享。目录应急背景分析样本开启监控感染病毒查看监控分析病毒行为autorun.inf分析2.异常连接3.进程排查4.启动项排查查杀1.先删掉autorun.inf文件2.使用xuetr杀掉进程3.启动项删除重启排查入侵排查正常流程 应急背景 运维人员准备通过windows共享文档…

帝国cms后台admin帐号密码忘记的处理方法

5.1 至 7.0 版本登录 phpMyAdmin访问 http://yourdomain.com/phpmyadmin。 输入数据库用户名和密码登录。选择帝国CMS 安装所在的数据库在 phpMyAdmin 主界面中,找到并选择帝国CMS 使用的数据库。找到 phome_enewsuser 表在数据库中找到名为 phome_enewsuser 的表。 单击该表以…