Python/Pandas:使用"for-loop"将多个数据帧写入Excel工作表



我无法想象这个问题以前没有被问过,但我无法在这里找到 ansare:我得到了一个Excel文件作为数据帧,并在上面使用了Dataframe.groupby。现在我想将每个组保存到一个新的Excel文件中,为每个组使用不同的工作表。我所能做的就是在每个文件中创建一个组创建许多新文件。我的新"解决方案"什么也没做。

df = pd.read_excel(file)
neurons = df.groupby("Tags")
#writing Keys into a list
tags = neurons.groups.keys()
tags = list(tags)

for keyInTags in tags:
     cells = group.get_group(keyInTags)
     cells.to_excel("final.xlsx", sheet_name=keyInTags)

我没有收到任何错误,但也没有收到新文件或写入现有文件。

实际上,我相信这是一个更好的解决方案。将 for 循环替换为以下代码:

writer = pd.ExcelWriter('excel_file_name.xlsx')
for keyInTags in tags:
     cells = group.get_group(keyInTags)
     cells.to_excel(writer, sheet_name=keyInTags)
writer.save()
writer.close()

对于仍在寻找的人来说,这是一个更干净的解决方案:

import pandas as pd
df = pd.read_excel("input.xlsx")
with pd.ExcelWriter("output.xlsx") as writer:
    for name, group in df.groupby("column_name"):
        group.to_excel(writer, index=False, sheet_name=name[:31])

相关内容

最新更新