【发布时间】:2017-03-09 15:04:35
【问题描述】:
作为标题,我需要使用 Pandas 将多个电子表格创建到一个 excel 文件中。而this thread 和this one 所有提供的解决方案,我想我的情况有点不同。这两种情况都使用类似于:
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: A B C
0 a 0 6
1 a 1 7
2 b 2 8
3 b 3 9
我打算使用grplist 中的['a', 'b', 'c'] 项来执行某种计算,并最终在data['A'] == a 到c 时生成单独的电子表格:
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()
遗憾的是,我的代码不会创建多个电子表格,因为 groups, numbers 会循环通过。我只能在我的 Excel 中的单个电子表格中获得最后一个结果。我能做什么?
这是我在这里的第一篇文章。我希望我遵守每条规则,以便这个线程可以结束。如果有什么需要修改或改进的,请告诉我。谢谢你的帮助:)
【问题讨论】: