在 Excel Pandas python 中写入大型数据框

问题描述 投票:0回答:1

我有一个数据框,其中包含 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格式的巨大数据框?

python pandas excel xlsxwriter
1个回答
0
投票

首先你可以使用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)
© www.soinside.com 2019 - 2024. All rights reserved.