如何将不同列的多个DataFrame分别导出至Excel不同工作表
将不同列名的DataFrame导出到Excel不同工作表
直接用pd.concat会合并所有列,显然不符合你的需求。正确做法是使用pandas.ExcelWriter,它可以把多个DataFrame分别写入同一个Excel文件的不同工作表,每个表保留自己的列结构。
完整实现代码
import pandas as pd import numpy as np # 定义列名列表 column = [["Banana","apple"], ["Banana","Grape"], ["Apple","Pizza"]] # 存储每个生成的DataFrame,避免循环中被覆盖 dfs = {} for i in range(3): # 修正数据列数,匹配对应列名的长度 random_data = np.random.randint(10,25,size=(5, len(column[i]))) df = pd.DataFrame(random_data, columns=column[i]) # 给工作表命名,比如Sheet_1、Sheet_2、Sheet_3 dfs[f"Sheet_{i+1}"] = df # 写入Excel文件 with pd.ExcelWriter("output.xlsx") as writer: for sheet_name, df in dfs.items(): df.to_excel(writer, sheet_name=sheet_name, index=False)
关键说明
- 用字典
dfs存储每个DataFrame,避免循环中每次赋值覆盖之前的结果 pd.ExcelWriter作为上下文管理器,能高效处理多工作表写入,同时保证文件正确关闭index=False可以避免导出DataFrame的索引列,根据需求可选择保留- 修正了原代码中数据列数与列名长度不匹配的问题,避免创建DataFrame时出错
内容的提问来源于stack exchange,提问作者Megan
相关产品推荐
相关产品推荐

