如何使用pandas以列表元素为表名在单个Excel文件中创建多个工作表
实现方法
你只需在循环调用to_excel方法时,将当前遍历到的number列表元素传入sheet_name参数即可实现需求。
核心修改点
把循环内to_excel调用处的sheet_name=''替换为sheet_name=n,每次循环取出的列表元素就会被设为对应工作表的名称。
如果使用pandas 1.4及以上版本,推荐用with上下文管理器创建Excel写入对象,会自动完成文件保存、资源释放,不需要手动调用save()方法,代码更稳妥。
修正后完整代码
import pandas as pd number=['200','300','400','500'] df1 = pd.DataFrame({'Data': ['a', 'b', 'c', 'd']}) # 兼容所有pandas版本的写法 writer = pd.ExcelWriter('D:\\multiple.xlsx', engine='xlsxwriter') for n in number: # 传入循环变量作为工作表名称 df1.to_excel(writer, sheet_name=n) writer.save() # pandas 1.4+ 推荐写法(无需手动执行save) # with pd.ExcelWriter('D:\\multiple.xlsx', engine='xlsxwriter') as writer: # for n in number: # df1.to_excel(writer, sheet_name=n)
注意:Excel工作表名称不支持
\、/、?、*、[、]、:这类特殊字符,长度不能超过31位,你当前使用的number列表元素符合规则,可直接运行生成文件。
内容的提问来源于stack exchange,提问作者Rohan Upadhye
相关产品推荐
相关产品推荐

