Python /熊猫:使用“ for循环”将多个数据框写入Excel工作表

时间:2019-04-02 13:40:46

标签: python excel pandas dataframe

我无法想象这个问题以前没有问过,但是我无法在这里找到答案: 我得到一个Excel文件作为Dataframe,并在其上使用了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)

我没有错误,但是也没有新文件或写入现有文件。

2 个答案:

答案 0 :(得分:0)

实际上,我认为这是一个更好的解决方案。用以下代码替换您的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()

答案 1 :(得分:0)

对于任何仍在寻找的人,这里是一个更清洁的解决方案:

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])