如何使用Python将多个DataFrame写入Excel的不同工作表
问题根因
- 你把
pd.ExcelWriter初始化和save()操作放在了循环内部,每次循环都会创建新的空白Excel文件覆盖旧文件,之前写入的工作表自然会丢失 - 嵌套循环逻辑错误、字典未提前初始化、concat拼接方向错误这几个问题也会导致代码运行报错
修正后可直接运行的代码
import pandas as pd # 语言列表 langs_list = ['ar','zh','cs','id','ja','km','ms','pt','ru','es','th','fil'] # 提前初始化存储数据的字典,避免KeyError dct = {f'language_{lang}': [] for lang in langs_list} dct.update({f'translation_{lang}': [] for lang in langs_list}) # 仅在循环外初始化一次ExcelWriter,用with上下文自动处理保存关闭 with pd.ExcelWriter('searches_languages.xlsx', engine='xlsxwriter') as writer: for lang in langs_list: # 这里替换为你自己的业务逻辑,给对应语言的列表填充数据 # dct[f'language_{lang}'].append(你要存入的语言数据) # dct[f'translation_{lang}'].append(你要存入的翻译数据) # 生成当前语言对应的DataFrame df = pd.DataFrame({ 'Language': dct[f'language_{lang}'], 'Translation': dct[f'translation_{lang}'] }) # 写入独立工作表,不会覆盖其他已有工作表 df.to_excel(writer, sheet_name=lang, index=False)
内容的提问来源于stack exchange,提问作者shorttriptomars
相关产品推荐
相关产品推荐

