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 文件提供了全面且灵活的功能,无论是简单的数据读取和写入,还是复杂的数据处理和格式设置,都能轻松应对。