Pandas Excel 文件操作使用详解

Pandas 是 Python 中一个强大的数据处理库,提供了丰富的功能来处理 Excel 文件,包括读取、写入和对 Excel 数据进行操作。以下是关于 Pandas 进行 Excel 文件操作的详细介绍。

1. 读取 Excel 文件

使用 pandas.read_excel() 函数可以读取 Excel 文件,该函数支持多种参数,以满足不同的读取需求。

基本读取

import pandas as pd

# 读取 Excel 文件
file_path = 'example.xlsx'
df = pd.read_excel(file_path)
print(df)

读取指定工作表

Excel 文件可能包含多个工作表,可以通过 sheet_name 参数指定要读取的工作表。
# 读取指定工作表
df = pd.read_excel(file_path, sheet_name='Sheet2')
print(df)

sheet_name 可以是工作表的名称,也可以是工作表的索引(从 0 开始)。

读取指定列

可以使用 usecols 参数指定要读取的列。
# 读取指定列
df = pd.read_excel(file_path, usecols=['Column1', 'Column2'])
print(df)

处理缺失值

可以通过 na_values 参数指定哪些值应被视为缺失值。
 
# 处理缺失值
df = pd.read_excel(file_path, na_values=['nan', 'missing'])
print(df)

2. 写入 Excel 文件

使用 DataFrame.to_excel() 方法可以将 DataFrame 对象的数据保存为 Excel 文件,同样支持多个参数来控制文件的输出格式。

基本写入

# 创建一个示例 DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)

# 写入 Excel 文件
file_path = 'output.xlsx'
df.to_excel(file_path, index=False)

index=False 表示不保存 DataFrame 的索引。

写入多个工作表

可以使用 ExcelWriter 对象将多个 DataFrame 写入同一个 Excel 文件的不同工作表中。
# 创建多个 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})

# 使用 ExcelWriter 写入多个工作表
with pd.ExcelWriter('multi_sheet.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)

3. 数据筛选与处理

读取 Excel 文件后,可以对 DataFrame 进行各种数据筛选和处理操作。

筛选数据

# 筛选年龄大于 30 的数据
filtered_df = df[df['Age'] > 30]
print(filtered_df)

数据转换

# 对年龄列加 1
df['Age'] = df['Age'] + 1
print(df)

4. 处理 Excel 文件的格式

在写入 Excel 文件时,可以使用 openpyxl 引擎(Pandas 默认使用)的一些功能来设置 Excel 文件的格式。

设置表头样式

from openpyxl import load_workbook
from openpyxl.styles import Font

# 写入 Excel 文件
df.to_excel('styled_output.xlsx', index=False)

# 加载工作簿
wb = load_workbook('styled_output.xlsx')
ws = wb.active

# 设置表头字体样式
header_font = Font(bold=True)
for cell in ws[1]:
    cell.font = header_font

# 保存工作簿
wb.save('styled_output.xlsx')

5. 处理大型 Excel 文件

当处理大型 Excel 文件时,一次性将整个文件加载到内存中可能会导致内存不足。此时可以使用 chunksize 参数进行分块读取。

# 分块读取大型 Excel 文件
chunk_size = 1000
for chunk in pd.read_excel(file_path, chunksize=chunk_size):
    # 对每个数据块进行处理
    processed_chunk = chunk[chunk['Age'] > 25]
    # 可以将处理后的数据块保存或进一步处理
    print(processed_chunk)

通过以上介绍可以看出,Pandas 为处理 Excel 文件提供了全面且灵活的功能,无论是简单的数据读取和写入,还是复杂的数据处理和格式设置,都能轻松应对。

posted on 2025-03-19 08:53  阿陶学长  阅读(433)  评论(0)    收藏  举报