如何使用 Python 读取 Excel 数据

 更新时间:2025年04月25日 14:18:23   作者:码上有潜  
这篇文章主要介绍了使用 Python 读取 Excel 数据的详细教程,通过 pandas 和 openpyxl,你可以轻松读取 Excel 文件,并进行各种数据处理操作,pandas 更适合快速、简单的数据分析,而 openpyxl 则适合需要对 Excel 文件进行更深入控制的场景,需要的朋友可以参考下

使用 Python 读取 Excel 数据的详细教程

Python 提供了多种读取 Excel 文件的方式,最常用的库是 pandasopenpyxl。下面我将详细介绍如何使用这两个库来读取 Excel 文件,并包含一些实用示例,帮助你撰写博客。

1. 安装必要的依赖

首先,需要确保安装了 pandasopenpyxl 库,这两个库可以帮助我们轻松读取 Excel 文件。

你可以使用以下命令安装它们:

pip install pandas openpyxl
  • pandas:用于数据处理和分析,它内置了读取 Excel 文件的功能。
  • openpyxl:一个读写 Excel 2007 及以上版本的 Excel 文件的库。

2. 读取 Excel 文件

假设你有一个 Excel 文件 data.xlsx,包含如下数据:

NameAgeCity
John25New York
Alice30London
Bob22Tokyo

你可以使用 pandas 来读取文件的内容。

import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 显示数据
print(df)

输出

    Name  Age      City
0   John   25  New York
1  Alice   30    London
2    Bob   22     Tokyo

3. 读取特定的工作表

Excel 文件通常包含多个工作表。可以通过指定 sheet_name 来读取特定的工作表。例如,假设 data.xlsx 文件中有一个名为 Sheet2 的工作表:

df = pd.read_excel('data.xlsx', sheet_name='Sheet2')
print(df)

你也可以通过索引来指定工作表:

df = pd.read_excel('data.xlsx', sheet_name=0)  # 读取第一个工作表

4. 读取多张工作表

如果你想一次性读取 Excel 文件中的所有工作表,可以使用 sheet_name=None,它会返回一个包含多个 DataFrame 的字典。

dfs = pd.read_excel('data.xlsx', sheet_name=None)
# 遍历所有工作表
for sheet, data in dfs.items():
    print(f"工作表名: {sheet}")
    print(data)

5. 只读取特定列

有时,你只需要读取 Excel 文件中的部分列。可以通过 usecols 参数指定需要读取的列。

df = pd.read_excel('data.xlsx', usecols=['Name', 'City'])
print(df)

输出

    Name      City
0   John  New York
1  Alice    London
2    Bob     Tokyo

你也可以使用列的索引来读取特定列,例如:

df = pd.read_excel('data.xlsx', usecols=[0, 2])  # 读取第一和第三列
print(df)

6. 处理缺失数据

在读取 Excel 数据时,可能会遇到空白单元格。你可以使用 pandas 处理这些缺失数据。例如,可以通过 na_values 参数将特定的值识别为 NaN,或者使用 fillna() 方法填充缺失值。

# 将特定值识别为NaN
df = pd.read_excel('data.xlsx', na_values=['N/A', 'NA'])
# 填充缺失数据
df.fillna(value={'Age': 0, 'City': 'Unknown'}, inplace=True)
print(df)

7. 将 Excel 数据转换为其他格式

有时你可能需要将读取的 Excel 数据保存为其他格式,例如 CSV 文件或 JSON 文件。pandas 允许你轻松实现这一点。

# 保存为CSV文件
df.to_csv('data.csv', index=False)
# 保存为JSON文件
df.to_json('data.json', orient='records')

8. 读取大文件和优化性能

如果 Excel 文件非常大,可能会导致内存不足或读取速度较慢。pandas 提供了一些方法来优化性能,例如使用 chunksize 分块读取数据。

# 分块读取Excel文件,每次读取100行
chunks = pd.read_excel('large_data.xlsx', chunksize=100)
for chunk in chunks:
    print(chunk)

9. 使用 openpyxl 读取 Excel

openpyxl 更适合需要对 Excel 文件进行更底层操作的场景,如读取和修改单元格样式、公式等。以下是一个简单的读取示例:

from openpyxl import load_workbook
# 加载Excel工作簿
wb = load_workbook('data.xlsx')
# 选择工作表
sheet = wb['Sheet1']
# 读取指定单元格的值
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, values_only=True):
    print(row)

10. 更多的 Excel 读取功能

你可以使用 pandas 提供的更多选项,例如:

  • skiprows: 跳过特定行数
  • nrows: 读取指定行数
  • header: 设置自定义标题行
# 跳过前两行并读取5行数据
df = pd.read_excel('data.xlsx', skiprows=2, nrows=5)
print(df)

总结

通过 pandasopenpyxl,你可以轻松读取 Excel 文件,并进行各种数据处理操作。pandas 更适合快速、简单的数据分析,而 openpyxl 则适合需要对 Excel 文件进行更深入控制的场景。

到此这篇关于使用 Python 读取 Excel 数据的详细教程的文章就介绍到这了,更多相关 Python 读取 Excel 数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python SQLAlchemy之SQL工具包和ORM的用法详解

    Python SQLAlchemy之SQL工具包和ORM的用法详解

    SQLAlchemy 是 Python 中一款非常流行的数据库工具包,它对底层的数据库操作提供了高层次的抽象,在本篇文章中,我们将介绍SQLAlchemy的两个主要组成部分:SQL工具包和对象关系映射器的基本使用,需要的朋友可以参考下
    2023-08-08
  • Go语言基于Socket编写服务器端与客户端通信的实例

    Go语言基于Socket编写服务器端与客户端通信的实例

    这篇文章主要介绍了Go语言基于Socket编写服务器端与客户端通信的实例,包括实现基于自定义通讯协议的Socket通信,需要的朋友可以参考下
    2016-02-02
  • python爬虫的一个常见简单js反爬详解

    python爬虫的一个常见简单js反爬详解

    这篇文章主要介绍了python爬虫的一个常见简单js反爬详解我们在写爬虫是遇到最多的应该就是js反爬了,今天分享一个比较常见的js反爬,我把js反爬分为参数由js加密生成和js生成cookie等来操作浏览器这两部分,需要的朋友可以参考下
    2019-07-07
  • 基于Python实现地标景点识别功能

    基于Python实现地标景点识别功能

    地标景点识别是一种基于计算机视觉技术的应用,旨在通过对图像进行分析和处理,自动识别出图片中的地标景点,本文将介绍地标景点识别的背景和原理,并使用Python编程语言来实现一个简单的地标景点识别系统,感兴趣的朋友可以参考下
    2024-01-01
  • OpenCV3.3+Python3.6实现图片高斯模糊

    OpenCV3.3+Python3.6实现图片高斯模糊

    这篇文章主要为大家详细介绍了OpenCV3.3+Python3.6实现图片高斯模糊,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率

    pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率

    今天小编就为大家分享一篇pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python有序字典简单实现方法示例

    Python有序字典简单实现方法示例

    这篇文章主要介绍了Python有序字典简单实现方法,涉及Python使用OrderedDict方法进行字典排序的相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 浅谈Tensorflow模型的保存与恢复加载

    浅谈Tensorflow模型的保存与恢复加载

    本篇文章主要介绍了浅谈Tensorflow模型的保存与恢复加载,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • python数据结构之栈、队列及双端队列

    python数据结构之栈、队列及双端队列

    在上一章的学习中,我们主要学习了怎么去衡量一个算法的好坏,比较常见的方式是使用大O记法,就是所谓的时间复杂度,这一章节我来学习基本的数据结构,如栈、队列和双端队列等等。感兴趣的小伙伴可以参考一下
    2021-12-12
  • 使用python画社交网络图实例代码

    使用python画社交网络图实例代码

    这篇文章主要给大家介绍了关于如何使用python画社交网络图的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07

最新评论