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

如何将多个DataFrame写入Excel文件的不同工作表?

我有两个DataFrame,希望分别写入同一个Excel文件的不同工作表。以下代码可实现该需求:

import pandas as pd

df_x = pd.DataFrame({'a':[1, 2, 3]})
df_y = pd.DataFrame({'b':['a', 'b', 'c']})

writer = pd.ExcelWriter('df_comb.xlsx', engine='xlsxwriter')

df_x.to_excel(writer, sheet_name='df_x', index=False)
df_y.to_excel(writer, sheet_name='df_y', index=False)

writer.save()
writer.close()

但实际场景中我有大量DataFrame,不想为每个都编写to_excel语句。请问能否通过遍历DataFrame列表来实现批量写入,类似如下代码的逻辑:

for i in [df_x, df_y]:
    i.to_excel(writer, sheet_name = i, index=False)
批量写入多个DataFrame到Excel不同工作表

你提供的遍历逻辑存在问题:无法直接将DataFrame对象作为工作表名称(sheet_name = i会触发类型错误)。要实现批量写入,核心是把每个DataFrame和对应的工作表名称绑定,推荐以下两种实现方式:

基础实现:手动配对DataFrame与工作表名

用嵌套元组的列表存储DataFrame和对应的工作表名称,遍历该列表完成批量写入:

import pandas as pd

# 构造多个目标DataFrame
df_x = pd.DataFrame({'a':[1, 2, 3]})
df_y = pd.DataFrame({'b':['a', 'b', 'c']})
df_z = pd.DataFrame({'c':[True, False, True]})

# 将DataFrame与工作表名一一配对
df_sheet_pairs = [
    (df_x, 'df_x'),
    (df_y, 'df_y'),
    (df_z, 'df_z')
]

# 初始化Excel写入器
writer = pd.ExcelWriter('df_comb.xlsx', engine='xlsxwriter')

# 批量写入循环
for df, sheet_name in df_sheet_pairs:
    df.to_excel(writer, sheet_name=sheet_name, index=False)

# 保存并释放资源
writer.save()
writer.close()

进阶优化:自动匹配DataFrame与工作表名

如果你的DataFrame变量名本身就是想要的工作表名(比如统一以df_开头),可以通过globals()自动筛选并配对,无需手动维护列表:

import pandas as pd

# 构造多个符合命名规则的DataFrame
df_x = pd.DataFrame({'a':[1, 2, 3]})
df_y = pd.DataFrame({'b':['a', 'b', 'c']})
df_z = pd.DataFrame({'c':[True, False, True]})

# 自动筛选所有以"df_"开头的DataFrame变量
df_sheet_pairs = [
    (var, name) 
    for name, var in globals().items() 
    if name.startswith('df_') and isinstance(var, pd.DataFrame)
]

writer = pd.ExcelWriter('df_comb_auto.xlsx', engine='xlsxwriter')

for df, sheet_name in df_sheet_pairs:
    df.to_excel(writer, sheet_name=sheet_name, index=False)

writer.save()
writer.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:45:42