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

已实现DataFrame存同一工作簿多工作表,如何存不同工作簿?

关于用pandas的to_excel保存DataFrame到不同Excel工作簿的问题

嘿,我来帮你理清这个点~首先得明确:pandas的to_excel方法本身并不支持workbook_name这类参数,因为你用到的writer对象(比如pd.ExcelWriter实例)是和单个Excel工作簿绑定的,一个writer只能对应一个工作簿,没法通过它切换到其他工作簿。

那要把不同的DataFrame保存到不同的工作簿,正确的做法是给每个工作簿单独创建一个ExcelWriter实例,然后分别调用to_excel。下面给你几个实用的示例:

基础示例:保存两个DataFrame到不同工作簿

import pandas as pd

# 假设有两个DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'X': [7, 8, 9], 'Y': [10, 11, 12]})

# 保存到第一个工作簿
with pd.ExcelWriter('工作簿1.xlsx') as writer1:
    df1.to_excel(writer1, sheet_name='Sheet1')

# 保存到第二个工作簿
with pd.ExcelWriter('工作簿2.xlsx') as writer2:
    df2.to_excel(writer2, sheet_name='Sheet1')

这里用with语句的好处是不需要手动调用writer.close(),会自动释放资源,更安全。

批量处理:多个DataFrame对应多个工作簿

如果有一堆DataFrame要分别存到不同工作簿,可以用字典来管理,然后循环处理:

import pandas as pd

# 构造多个DataFrame和对应的工作簿名称
df_dict = {
    '销售数据.xlsx': pd.DataFrame({'产品': ['A', 'B'], '销量': [100, 200]}),
    '库存数据.xlsx': pd.DataFrame({'产品': ['A', 'B'], '库存': [50, 30]}),
    '用户数据.xlsx': pd.DataFrame({'用户ID': [1, 2], '姓名': ['张三', '李四']})
}

# 循环保存每个DataFrame到对应的工作簿
for workbook_name, df in df_dict.items():
    with pd.ExcelWriter(workbook_name) as writer:
        df.to_excel(writer, sheet_name='数据')

总结一下:你没法通过同一个writer实例指定不同工作簿,必须为每个目标工作簿创建独立的ExcelWriter,再调用to_excel完成保存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:45:27