首頁 > 後端開發 > Python教學 > 如何在Python中有效讀取和處理大型CSV檔案?

如何在Python中有效讀取和處理大型CSV檔案?

DDD
發布: 2024-11-09 11:58:02
原創
565 人瀏覽過

How to Effectively Read and Process Large CSV Files in Python?

有效讀取大型 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
登入後複製

此更新的程式碼逐行產生與指定條件相符的行。它消除了將整個資料集保留在記憶體中的需要。

效能改進

除了記憶體最佳化之外,還有其他技術可以提高效能:

  • 使用串流解析器:考慮使用支援串流的CSV 庫,允許您增量處理資料而不將其載入到記憶體中。
  • 並行處理:如果您的系統支持,請透過在多個核心或處理器之間分配工作負載來探索並行處理。
  • 快取經常存取的資料:如果可能,快取重複存取的資料集部分,以最大程度地減少重新讀取的需要
  • 最佳化您的程式碼:檢查您的程式碼是否有任何不必要或低效的操作,這些操作可能會減慢處理速度。

透過採用這些策略,您可以大幅提高 Python 程式碼處理大型 CSV 檔案的效率。

以上是如何在Python中有效讀取和處理大型CSV檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板