循环浏览panda数据帧列表,并将它们写入一个Excel文件(来自Jupyter笔记本)中的不同选项卡



我的Jupyter笔记本中有一个数据帧,我可以用pandas ExcelWriter成功地将其写入Excel文件,但我宁愿将数据帧拆分为更小的数据帧(基于其索引(,然后循环遍历它们,将每个数据帧写入一个Excel文件中的不同工作表。这在语法上似乎是正确的,但我的代码单元运行时从未完成:

path = r'/root/notebooks/my_file.xlsx'
writer = ExcelWriter(path)
sheets = df.index.unique().tolist()
for sheet in sheets:
df.loc[sheet].to_excel(writer, sheet_name=sheet, index=False)
writer.save()

我尝试了几种不同的方法,但没有成功。我是不是错过了一些简单的东西?

如果没有错误消息,很难确定系统中的问题(正如您所说,您有一个无限循环(。您可以检查数据集的大小,因为每个excel表只放一行。如果你有很多排,那么你就会有那么多床单。

然而,我用自己的数据集尝试了您的代码,但仍有一些错误可以修复。

path = 'raw/test_so.xlsx'
writer = pd.ExcelWriter(path)
sheets = df.index.unique().tolist()
for sheet in sheets:
df.loc[[sheet]].to_excel(writer, sheet_name=str(sheet), index=False)
writer.save()

请参阅每张表的df.loc[[sheet]],以仍然获得excel上的数据帧格式(带列标题(。

如果数据帧索引是整数,请确保执行sheet_name=str(sheet),因为它不能接受工作表名称的整数。