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

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

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

1. 安装必要的依赖

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

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

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

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

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

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

python 复制代码
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 的工作表:

python 复制代码
df = pd.read_excel('data.xlsx', sheet_name='Sheet2')
print(df)

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

python 复制代码
df = pd.read_excel('data.xlsx', sheet_name=0)  # 读取第一个工作表
4. 读取多张工作表

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

python 复制代码
dfs = pd.read_excel('data.xlsx', sheet_name=None)

# 遍历所有工作表
for sheet, data in dfs.items():
    print(f"工作表名: {sheet}")
    print(data)
5. 只读取特定列

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

python 复制代码
df = pd.read_excel('data.xlsx', usecols=['Name', 'City'])
print(df)

输出

复制代码
    Name      City
0   John  New York
1  Alice    London
2    Bob     Tokyo

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

python 复制代码
df = pd.read_excel('data.xlsx', usecols=[0, 2])  # 读取第一和第三列
print(df)
6. 处理缺失数据

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

python 复制代码
# 将特定值识别为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 允许你轻松实现这一点。

python 复制代码
# 保存为CSV文件
df.to_csv('data.csv', index=False)

# 保存为JSON文件
df.to_json('data.json', orient='records')
8. 读取大文件和优化性能

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

python 复制代码
# 分块读取Excel文件,每次读取100行
chunks = pd.read_excel('large_data.xlsx', chunksize=100)

for chunk in chunks:
    print(chunk)
9. 使用 openpyxl 读取 Excel

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

python 复制代码
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: 设置自定义标题行
python 复制代码
# 跳过前两行并读取5行数据
df = pd.read_excel('data.xlsx', skiprows=2, nrows=5)
print(df)

总结

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

相关推荐
databook10 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar11 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805112 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_12 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机18 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机19 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i20 小时前
drf初步梳理
python·django
每日AI新事件20 小时前
python的异步函数
python