用Python Pandas在一个excel文件中创build多个电子表格

作为标题,我需要创build多个电子表格与pandas的Excel文件。 虽然这个线程和这个都提供了解决scheme,但我觉得我的情况有些不同。 这两种情况都使用类似的东西:

writer = pd.ExcelWriter('output.xlsx') DF1.to_excel(writer,'Sheet1') DF2.to_excel(writer,'Sheet2') writer.save() 

然而,问题在于,我不能同时在内存中保存多个数据框,因为每个数据框都太大。 我的数据可以是这个复杂的版本: df = pd.DataFrame(dict(A=list('aabb'), B=range(4), C=range(6,10)))
Out: ABC 0 a 0 6 1 a 1 7 2 b 2 8 3 b 3 9

我打算在grplist使用['a', 'b', 'c']来进行某种计算,并最终在data['A'] == ac

 data = pd.read_csv(fileloc) grplist = [['a','b','c'],['d','e','f']] for groups, numbers in zip(grplist, range(1, 5)): for category in groups: clean = data[(data['A'] == category) & (data['B'] == numbers)]['C'] # --------My calculation to generate a dataframe-------- my_result_df = pd.DataFrame(my_result) writer = ExcelWriter('my_path_of_excel') my_resultdf.to_excel(writer, 'Group%s_%s' % (numbers, category[:4])) writer.save() gc.collect() 

可悲的是我的代码不会创build多个电子表格作为groups, numbers循环。 我只能得到在我的Excel中的单个电子表格中的最后一个结果。 我能做什么?

这是我在这里的第一篇文章。 我希望我遵循每一条规则,以便这个线程可以很好地结束。 如果有什么需要修改或改进,请让我知道。 谢谢你的帮助 :)

考虑df

 df = pd.DataFrame(dict(A=list('aabb'), B=range(4))) 

循环通过组和打印

 for name, group in df.groupby('A'): print('{}\n\n{}\n\n'.format(name, group)) a AB 0 a 0 1 a 1 b AB 2 b 2 3 b 3 

to_excel

 writer = pd.ExcelWriter('output.xlsx') for name, group in df.groupby('A'): group.to_excel(writer, name) writer.save() writer.close()