我有一个数据框,其中包含 5,50,000 到 9,00,000 行和 10 列之间的数据 我从 postgtresql 读取数据并将数据转换为数据帧,这花了几秒钟。 然而,当尝试在Excel中写入数据时,花了1个多小时才写完
writer = pd.ExcelWriter('文件路径/文件.xlsx', engine='xlsxwriter')
df.to_excel(writer,sheet_name='我的报告',startrow=8,index=False,header=False)
有什么方法可以在几秒钟内插入Excel格式的巨大数据框?
首先你可以使用csv格式代替,更快:
df.to_csv('filepath/file.csv', index=False)
如果强制使用 Excel 格式,您可以使用较低的块写入文件,例如:
chunk_size = 10000 # Adjust this based on your system's memory capacity
num_chunks = len(df) // chunk_size + 1
with pd.ExcelWriter('filepath/file.xlsx', engine='xlsxwriter') as writer:
for i in range(num_chunks):
start_idx = i * chunk_size
end_idx = min((i + 1) * chunk_size, len(df))
chunk_df = df.iloc[start_idx:end_idx]
chunk_df.to_excel(writer, sheet_name='My Report', startrow=start_idx + 8, index=False, header=False)
如果您可以使用openpyxl引擎:
writer = pd.ExcelWriter('filepath/file.xlsx', engine='openpyxl')
df.to_excel(writer, sheet_name='My Report', startrow=8, index=False, header=False)