You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks中将多个Pandas DataFrame保存到单个.xlsx的不同工作表?

将多个DataFrame保存到同一Excel文件的不同工作表(Databricks环境)

要实现将多个Pandas DataFrame分别保存到同一个.xlsx文件的不同工作表中,你可以借助pandas.ExcelWriter工具,结合Databricks本地临时文件+DBFS复制的方式完成,具体步骤如下:

1. 基础实现:创建新的多工作表Excel文件

假设你有df1、df2、df3三个DataFrame,需要分别存入名为Sheet1、Sheet2、Sheet3的工作表:

import pandas as pd
import shutil

# 定义DBFS最终路径和本地临时文件路径
final_path = '/dbfs/FileStore/multi_sheet_data.xlsx'
temp_path = '/tmp/multi_sheet_data.xlsx'

# 使用ExcelWriter写入多个工作表
with pd.ExcelWriter(temp_path, engine='openpyxl') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)  # index=False可选,避免保存索引列
    df2.to_excel(writer, sheet_name='Sheet2', index=False)
    df3.to_excel(writer, sheet_name='Sheet3', index=False)

# 将临时文件复制到DBFS
shutil.copyfile(temp_path, final_path)

2. 进阶:向现有Excel文件追加新工作表

如果需要在已存在的DBFS Excel文件中添加新工作表,需先将文件复制到本地临时目录,再以追加模式打开:

import pandas as pd
import shutil

final_path = '/dbfs/FileStore/multi_sheet_data.xlsx'
temp_path = '/tmp/multi_sheet_data.xlsx'

# 先将DBFS中的现有文件复制到本地临时目录
shutil.copyfile(final_path, temp_path)

# 以追加模式打开,指定工作表存在时的处理逻辑
with pd.ExcelWriter(
    temp_path, 
    engine='openpyxl', 
    mode='a', 
    if_sheet_exists='replace'  # 可选值:error(报错)/new(新建)/replace(替换)
) as writer:
    df4.to_excel(writer, sheet_name='NewSheet', index=False)

# 将更新后的临时文件覆盖回DBFS
shutil.copyfile(temp_path, final_path)

注意事项

  • 确保已安装openpyxl引擎:在Databricks notebook中执行%pip install openpyxl完成安装。
  • 使用本地临时文件的原因:DBFS是分布式文件系统,直接通过ExcelWriter写入可能存在兼容性问题,先写入本地临时目录再复制更可靠。

内容的提问来源于stack exchange,提问作者Sam Eley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:57:20