Pandas 将数据帧写入.xlsx太慢

Pandas 将数据帧写入.xlsx太慢,pandas,Pandas,我正在向.xlsx写入一个40MB数据帧“dfScore” 代码如下: writer = pandas.ExcelWriter('test.xlsx', engine='xlsxwriter') dfScore.to_excel(writer,sheet_name='Sheet1') writer.save() 代码dfScore.to_excel几乎需要一个小时,代码编写器.save()又需要一个小时。这正常吗?有没有一个不到10分钟的好方法 我已经在stackoverflow中搜索过了,但

我正在向.xlsx写入一个40MB数据帧“dfScore” 代码如下:

writer = pandas.ExcelWriter('test.xlsx', engine='xlsxwriter')
dfScore.to_excel(writer,sheet_name='Sheet1')
writer.save()
代码
dfScore.to_excel
几乎需要一个小时,
代码编写器.save()
又需要一个小时。这正常吗?有没有一个不到10分钟的好方法

我已经在stackoverflow中搜索过了,但似乎有些建议对我的问题不起作用

代码dfScore.to_excel几乎需要一个小时,而代码编写器.save()则需要一个小时。这正常吗

听起来有点太高了。我运行了一个XlsxWriter测试,写1000000行x5列,耗时约100秒。时间会根据测试机器的CPU和内存而变化,但1小时的速度要慢36倍,这似乎不正确

请注意,Excel和XlsxWriter在每个工作表中只支持1048576行,因此您实际上是在浪费3/4的数据和时间

有没有一个不到10分钟的好方法


对于纯XlsxWriter,程序可以提供很好的加速。例如,使用pypy重新运行1000000行x5列的测试用例,时间从99.15秒变为16.49秒。我不知道熊猫是否能与pypy一起使用。

为什么不将其保存为.csv? 我曾在我的个人笔记本电脑上使用过较重的数据帧,在向xlsx写入数据时也遇到过同样的问题

your_dataframe.to_csv('my_file.csv',encoding='utf-8',columns=list_of_dataframe_columns)

然后,您可以使用MS Excel或在线转换器将其转换为.xlsx。

数据框的大小为400万行乘5列。尝试写入csv并比较时间。现代excel电子表格只能处理1048576行。它不是太慢,而是卡住了。它死了。您正在写入的行数超出了excel的处理能力。这导致excel编写者默默地、无限期地等待一个永远不会发生的奇迹。将数据框拆分为若干位并作为单独的表格写入,或者使用另一种格式(例如csv),或者使用一些统计工具压缩数据框以使其适合excel。在8GB上,macbook air将200万条记录读写到excel需要约20分钟49秒来写入csv,回读csv需要19秒。如回答中所述,使用excel我一直注意到同样的速度慢,并以这种方式解决问题-保存到csv,然后在excel中打开并重新保存为xlsx。这样做要快很多倍。不幸的是,我不知道为什么。