Python读取XLSX文件完整教程 - 从入门到实战 | Python数据处理指南
- Python
- 2025-08-04
- 1003
Python读取XLSX文件完整教程
掌握两种主流方法,轻松处理Excel数据
为什么要使用Python处理Excel文件?
Excel是广泛使用的数据分析工具,但处理大量数据时效率较低。Python提供了强大的库来处理Excel文件,可以实现:
- 自动化数据处理流程
- 处理大型数据集(超过Excel行数限制)
- 集成到数据分析和机器学习流程中
- 批量处理多个Excel文件
- 实现复杂的数据转换和分析
准备工作:安装必需库
在开始之前,请确保安装了以下Python库:
pandas:提供高级数据结构和数据分析工具
openpyxl:专门用于读写Excel 2010 xlsx/xlsm文件
方法一:使用pandas读取XLSX文件(推荐)
pandas是Python数据处理的核心库,提供了简单高效的Excel文件读取方法。
基础读取方法
import pandas as pd
# 读取整个Excel文件
df = pd.read_excel('数据文件.xlsx')
# 显示前5行数据
print(df.head())
指定工作表
# 通过名称指定工作表
df = pd.read_excel('数据文件.xlsx', sheet_name='销售数据')
# 通过索引指定工作表(0表示第一个工作表)
df = pd.read_excel('数据文件.xlsx', sheet_name=0)
选择特定列
# 只读取A列和C列
df = pd.read_excel('数据文件.xlsx', usecols=['A', 'C'])
# 通过列索引读取(0表示第一列)
df = pd.read_excel('数据文件.xlsx', usecols=[0, 2])
处理标题行
# 文件没有标题行时
df = pd.read_excel('数据文件.xlsx', header=None)
# 指定标题行位置(0表示第一行)
df = pd.read_excel('数据文件.xlsx', header=0)
# 自定义列名
df = pd.read_excel('数据文件.xlsx', header=None, names=['姓名', '年龄', '城市', '职业'])
方法二:使用openpyxl读取XLSX文件
当需要更精细控制Excel文件或处理大型文件时,openpyxl是更好的选择。
基本文件读取
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('数据文件.xlsx')
# 获取工作表名称
print(wb.sheetnames)
# 选择第一个工作表
sheet = wb.active
# 或者根据名称选择工作表
sheet = wb['销售数据']
读取单元格数据
# 读取单个单元格的值
cell_value = sheet['B2'].value
print(f"B2单元格的值是: {cell_value}")
# 使用行列索引读取
cell_value = sheet.cell(row=2, column=2).value
print(f"第2行第2列的值是: {cell_value}")
遍历工作表数据
# 遍历所有行
for row in sheet.iter_rows(min_row=2, values_only=True):
print(row)
# 读取特定区域
for row in sheet['A2':'D10']:
for cell in row:
print(cell.value, end="\t")
print()
实战案例:销售数据分析
使用pandas读取销售数据并进行分析:
import pandas as pd
# 读取销售数据文件
sales_data = pd.read_excel('sales_data.xlsx')
# 显示数据摘要
print("数据摘要:")
print(sales_data.info())
# 计算各产品销售总额
product_sales = sales_data.groupby('产品名称')['销售额'].sum().reset_index()
print("\n各产品销售总额:")
print(product_sales)
# 按月统计销售额
sales_data['月份'] = sales_data['日期'].dt.month
monthly_sales = sales_data.groupby('月份')['销售额'].sum()
print("\n月度销售额:")
print(monthly_sales)
# 保存分析结果
product_sales.to_excel('产品销售额汇总.xlsx', index=False)
常见问题解答
Q: 读取大文件时内存不足怎么办?
A: 可以尝试:
1. 使用openpyxl的read-only模式:
wb = load_workbook('大文件.xlsx', read_only=True)
2. 使用pandas分块读取:
chunk_iter = pd.read_excel('大文件.xlsx', chunksize=1000)
Q: 如何读取包含多个工作表的Excel文件?
A: 使用pandas时:
all_sheets = pd.read_excel('多工作表.xlsx', sheet_name=None)
这会返回一个字典,键是工作表名,值是DataFrame。
Q: 日期列读取后格式不正确怎么办?
A: 在pd.read_excel()中指定日期解析:
df = pd.read_excel('文件.xlsx', parse_dates=['日期列'])
Q: 应该选择pandas还是openpyxl?
A:
- 选择pandas:进行数据分析、数据清洗或需要DataFrame功能时
- 选择openpyxl:需要精细控制Excel文件(样式、公式等)或处理大型文件时
总结
本教程介绍了两种Python读取XLSX文件的方法:
- pandas - 适合大多数数据分析任务,提供高级API
- openpyxl - 提供更底层的控制,适合复杂Excel操作
掌握这些技能后,你可以:
- 自动化Excel数据处理任务
- 将Excel数据集成到Python数据分析流程中
- 处理超出Excel容量限制的大型数据集
- 创建复杂的数据处理管道
© 2023 Python数据处理教程 | 提供实用的Python技术指南
本文由SituBinLei于2025-08-04发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20257264.html
发表评论