使用pandas xlsxwriter的恒定内存



我正试图使用以下代码将大熊猫数据帧写入excel数据表,如果我直接写入,系统的RAM将耗尽,这是一个可行的选择吗?或者有其他选择吗?

writer = pd.ExcelWriter('Python Output Analysis.xlsx', engine='xlsxwriter',options=dict(constant_memory=True))

XlsxWriter的constant_memory模式可用于以低、恒定的内存使用率编写非常大的Excel文件。问题是数据需要按行顺序写入,而Pandas则按列顺序写入Excel。因此constant_memory模式无法与PandasExcelWriter配合使用。

作为一种替代方案,您可以避免ExcelWriter,并逐行从数据帧直接将数据写入XlsxWriter。然而,从熊猫的角度来看,这将是较慢的。

如果您的数据很大,只需考虑将数据保存为原始文本文件即可。例如csv、txt等

df.to_csv('file.csv', index=False, sep=',')
df.to_csv('file.tsv', index=False, sep='t')

或者拆分DataFrame,并保存到小文件中。

df_size = df.shape[0]
chunksize = df_size//10
for i in range(0, df_size, chunksize):
# print(i, i+chunksize)
dfn = df.iloc[i:i+chunksize,:]
dfn.to_excel('...')  

最新更新