有效讀取大型 CSV 檔案
由於記憶體限制,在 Python 中讀取和處理大型 CSV 檔案可能具有挑戰性。對於包含數百萬行和數百列的文件,此問題變得更加突出。
記憶體問題和最佳化
您目前的程式碼嘗試從將 CSV 檔案放入清單中。但是,這種方法對於大檔案來說效率較低,因為它將整個資料集載入到記憶體中。
要解決此記憶體問題,請在讀取資料時處理資料。使用一次產生一行的生成器函數,如下所示:
import csv def getstuff(filename, criterion): with open(filename, "rb") as csvfile: datareader = csv.reader(csvfile) yield next(datareader) # yield the header row count = 0 for row in datareader: if row[3] == criterion: yield row count += 1 elif count: # stop when exceeding the adjacent rows of criteria return
此更新的程式碼逐行產生與指定條件相符的行。它消除了將整個資料集保留在記憶體中的需要。
效能改進
除了記憶體最佳化之外,還有其他技術可以提高效能:
透過採用這些策略,您可以大幅提高 Python 程式碼處理大型 CSV 檔案的效率。
以上是如何在Python中有效讀取和處理大型CSV檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!