我正在嘗試使用 python 將一個大的 ~ 100mb csv 檔案轉換為 xlsx。我嘗試了下面的解決方案,但遇到了記憶體問題
https://stackoverflow.com/a/62750402/1266723
下面的解決方案通過分塊寫入來解決記憶體問題,但會覆寫檔案。有人可以推薦如何附加到同一個檔案而不是創建新檔案或覆寫同一個檔案嗎?
https://stackoverflow.com/a/71237366/1266723
import pandas as pd
n = 1000 # number of rows per chunk
df = pd.read_csv("myFile.csv")
for i in range(0, df.shape[0], n):
df[i:i n].to_excel(f"new_file.xlsx", index=False, header=False)
uj5u.com熱心網友回復:
你試過這個嗎(見頁面底部的倒數第二個例子)?
# ExcelWriter can also be used to append to an existing Excel file:
with pd.ExcelWriter('output.xlsx',
mode='a') as writer:
df.to_excel(writer, sheet_name='Sheet_name_3')
uj5u.com熱心網友回復:
保留您的代碼,您可以指定以下startrow屬性pd.DataFrame.to_excel:
for i in range(0, df.shape[0], n):
if i == 0:
# First chunk
startrow = 0
else:
startrow = i n
df[i:i n].to_excel(f"new_file.xlsx", index=False, header=False, startrow=startrow)
uj5u.com熱心網友回復:
您可以使用 ExcelWriter 對 xlsx 檔案進行多次寫入。
您甚至可以分塊讀取 csv 檔案:
n = 1000 # chunksize
with pd.read_csv("myFile.csv", chunksize=n) as reader, \
pd.ExcelWriter('new_file.xlsx') as writer:
for i, df in enumerate(reader):
df.to_excel(writer, index=False, header=False, startrow=i * n)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/527458.html
標籤:Python熊猫
