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

简介: 在数据分析中,从 Excel 文件读取数据是常见需求。本文介绍了使用 Python 的三个库:`pandas`、`openpyxl` 和 `xlrd` 来高效处理 Excel 文件的方法。`pandas` 提供了简洁的接口,而 `openpyxl` 和 `xlrd` 则针对不同版本的 Excel 文件格式提供了详细的数据读取和处理功能。此外,还介绍了如何处理复杂格式(如合并单元格)和进行性能优化(如分块读取)。通过这些技巧,可以轻松应对各种 Excel 数据处理任务。

一、引言

在数据分析和处理中,经常需要从 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_workbook

wb = load_workbook('example.xlsx')
sheet = wb.active

merged_cells = sheet.merged_cells.ranges

for 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_col
top_left_cell_value = sheet.cell(row=min_row, column=min_col).value
for 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 pd

chunk_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

目录
相关文章
|
6月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
605 0
|
6月前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
705 7
|
7月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1108 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
7月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
524 1
|
7月前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
220 0
|
8月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
442 0
|
8月前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
276 2
|
9月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
9月前
|
Python
将Excel特定某列数据删除
将Excel特定某列数据删除
|
9月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。

推荐镜像

更多
下一篇
开通oss服务