【发布时间】:2021-05-21 19:40:52
【问题描述】:
我有一个嵌套的 for 循环,它从具有多个工作表的主文件中获取数据,并按用户为每个工作表拆分数据。然后我想用与主文件相同的表格将每个用户的数据写入他们自己的文件。
这是我目前所拥有的:
tm_sheet_to_df_map = pd.read_excel(src_file_tm, sheet_name=None)
for key, value in sorted(tm_sheet_to_df_map.items(),reverse=True):
tm_group = value.groupby('TM')
for TM, group_df in tm_group:
attachment = attachment_path_tm / f'{TM}' / f'Q221 New Accounts - {TM}.xlsx'
attachment1 = os.makedirs(os.path.dirname(attachment), exist_ok=True)
writer = ExcelWriter(attachment, engine = 'xlsxwriter')
group_df.to_excel(writer, sheet_name =f'{key}', index=False)
writer.save()
问题 - 上述脚本为每个用户创建一个新文件,但只会将最终数据帧写入每个文件,而不是添加主文件中的所有工作表。任何想法如何将每张纸写入单个文件?我试过搬家 writer.save() 在循环之外没有运气。
【问题讨论】:
-
group_df.to_excel(writer, sheet_name =f'{key}', index=False) writer.save()在每个循环中执行,您可能只想在最后执行它,所以将它放在循环之外的末尾 -
我尝试了您的建议,将这些项目移到循环的末尾和外部。但是,Excel 文件中没有数据。它们是空白的。
标签: python pandas openpyxl xlsxwriter pandas.excelwriter