使用Python将数据框列表快速写入Excel工作表的最快方法

4

我有50个包含每个20,000行的CSV文件,我已经将它们合并,然后按日期拆分。我的结果是一个数据框列表,我想将列表中的每个数据框写入输出Excel的一个工作表中。 我已经尝试过:

with pd.ExcelWriter('output.xlsx') as writer:
        cont=0
        for x in List:
            x.to_excel(writer,sheet_name="csv_"+str(cont),index=False, engine='xlsxwriter',na_rep="NAN",startrow=1,startcol=1)
            cont+=1

但我遇到了内存错误,而且需要很长时间。所以我的问题是,有人知道如何使用Python以非常快的方式将大数据帧写入Excel表格吗?或者我应该使用其他语言来编写它?我已经发布了另一个帖子展示了我的错误:将pandas数据帧写入Excel崩溃

你必须在单个操作中存储和运行所有50个CSV文件吗?难道你不能每个文件加载、转换,然后导出以减少脚本的内存占用吗?我认为这个问题不是速度的问题,而更多地涉及到内存使用。 - r.ook
1个回答

2
为了修复你的内存错误,你需要增加你的cont变量。
with pd.ExcelWriter('output.xlsx') as writer:
        cont = 0
        for x in List:
            x.to_excel(writer,sheet_name="csv_"+str(cont),index=False, engine='xlsxwriter',na_rep="NAN",startrow=1,startcol=1)
            cont += 1

更好的语法是:
with pd.ExcelWriter('output.xlsx') as writer:
        for i, x in enumerate(List):
            x.to_excel(writer,sheet_name="csv_"+str(i),index=False, engine='xlsxwriter',na_rep="NAN",startrow=1,startcol=1)

请检查您要输出的文件是否符合Excel规范

如果一切正常但速度仍然过慢,您可以使用更快的Excel模块


1
谢谢,但那不是我的问题。 - Pablo Escobar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接