如何将Pandas处理后的数据写回到Excel文件中?
在 Pandas 里,可运用
DataFrame.to_excel() 方法把处理好的数据写回到 Excel 文件。下面将从不同场景出发,详细介绍该方法的使用。1. 基本写入操作
此为最简单的写入方式,会把
DataFrame 的数据写入到一个新的 Excel 文件里。import pandas as pd
# 创建示例 DataFrame
data = {
'姓名': ['张三', '李四', '王五'],
'年龄': [25, 30, 35],
'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
# 指定要保存的文件路径
file_path = 'basic_write.xlsx'
# 执行写入操作
df.to_excel(file_path, index=False)
在上述代码中,
index=False 表明不保存 DataFrame 的行索引。若不设置该参数,默认会保存行索引。2. 写入到指定工作表
当需要把数据写入到 Excel 文件的特定工作表时,可通过
sheet_name 参数来指定工作表名称。若该工作表不存在,会自动创建。file_path = 'specific_sheet.xlsx'
sheet_name = '员工信息'
df.to_excel(file_path, sheet_name=sheet_name, index=False)
3. 写入多个 DataFrame 到不同工作表
可以使用
ExcelWriter 对象把多个 DataFrame 写入到同一个 Excel 文件的不同工作表中。# 创建另一个示例 DataFrame
data2 = {
'部门': ['技术部', '销售部', '财务部'],
'人数': [10, 20, 15]
}
df2 = pd.DataFrame(data2)
file_path = 'multi_sheets.xlsx'
with pd.ExcelWriter(file_path) as writer:
df.to_excel(writer, sheet_name='员工信息', index=False)
df2.to_excel(writer, sheet_name='部门信息', index=False)
这里借助
with 语句创建 ExcelWriter 对象,在 with 代码块中,分别将两个 DataFrame 写入到不同的工作表。4. 追加数据到已有的 Excel 文件
若要把数据追加到现有的 Excel 文件的某个工作表中,可先读取原文件,再把新数据追加到
DataFrame 里,最后重新写入文件。# 假设已有一个 Excel 文件 existing_file.xlsx,包含一个工作表 'Sheet1'
existing_file = 'existing_file.xlsx'
# 读取原文件
existing_df = pd.read_excel(existing_file, sheet_name='Sheet1')
# 追加新数据
combined_df = pd.concat([existing_df, df], ignore_index=True)
# 将合并后的数据写回文件
combined_df.to_excel(existing_file, sheet_name='Sheet1', index=False)
5. 设置 Excel 文件格式
在写入 Excel 文件时,还能设置一些格式,例如冻结窗格、设置表头样式等,这需要结合
openpyxl 库来实现。from openpyxl import load_workbook
from openpyxl.styles import Font
file_path = 'styled_file.xlsx'
df.to_excel(file_path, index=False)
# 加载工作簿
wb = load_workbook(file_path)
ws = wb.active
# 设置表头字体样式
header_font = Font(bold=True)
for cell in ws[1]:
cell.font = header_font
# 冻结首行
ws.freeze_panes = ws['A2']
# 保存工作簿
wb.save(file_path)
上述代码在写入数据后,使用
openpyxl 库加载工作簿,设置表头字体为粗体,并冻结首行,最后保存工作簿
浙公网安备 33010602011771号