遍历 pandas 数据帧列表并将它们写入一个 Excel 文件中的不同选项卡(来自 Jupyter notebook)
Loop through list of pandas dataframes and write them to different tabs in one Excel file (from Jupyter notebook)
我的 Jupyter 笔记本中有一个数据框,我可以使用 pandas ExcelWriter 成功写入 Excel 文件,但我宁愿将数据框拆分成更小的数据框(基于其索引),然后遍历它们以将每个写入一个 Excel 文件中的不同 sheet。这在语法上似乎是正确的,但我的代码单元没有完成就运行了:
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 sheet 放置一行。如果您有很多行,那么您将有那么多 sheets。
但是,我用我自己的数据集尝试了您的代码,但仍然存在一些可以修复的错误。
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()
查看每个 sheet 的 df.loc[[sheet]]
以仍然获得 excel 上的数据帧格式(包含 headers 列)。
如果您的数据帧索引是整数,请确保您这样做 sheet_name=str(sheet)
,因为它不能接受 sheet 名称的整数。
我的 Jupyter 笔记本中有一个数据框,我可以使用 pandas ExcelWriter 成功写入 Excel 文件,但我宁愿将数据框拆分成更小的数据框(基于其索引),然后遍历它们以将每个写入一个 Excel 文件中的不同 sheet。这在语法上似乎是正确的,但我的代码单元没有完成就运行了:
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 sheet 放置一行。如果您有很多行,那么您将有那么多 sheets。
但是,我用我自己的数据集尝试了您的代码,但仍然存在一些可以修复的错误。
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()
查看每个 sheet 的 df.loc[[sheet]]
以仍然获得 excel 上的数据帧格式(包含 headers 列)。
如果您的数据帧索引是整数,请确保您这样做 sheet_name=str(sheet)
,因为它不能接受 sheet 名称的整数。