在Excel Pandas Python中编写大型数据框

y1aodyip  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(102)

我有一个dataframe,其中包含5,50,000到9,00,000行和10列之间的数据,我从postgtresql读取数据,并将数据转换为dataframe,这需要几秒钟。然而,当试图在Excel中写入数据时,花了1个多小时才写入
writer = pd.ExcelWriter('filepath/file.xlsx',engine='xlsxwriter ')
df.to_excel(writer,sheet_name='My Report ',startrow=8,index=False,header=False)
有没有什么方法可以在几秒钟内插入Excel格式的大型 Dataframe ?

watbbzwu

watbbzwu1#

首先你可以用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)

相关问题