大きな CSV ファイルを効果的に読み取る
Python で大きな CSV ファイルを読み取り、処理することは、メモリ制限により困難な場合があります。この問題は、数百万の行と数百の列を含むファイルではさらに顕著になります。
メモリの問題と最適化
現在のコードは、 CSVファイルをリストに取り込みます。ただし、このアプローチはデータセット全体をメモリに読み込むため、大きなファイルの場合は非効率的です。
このメモリの問題を解決するには、データを読み込むときにデータを処理します。以下に示すように、一度に 1 行を生成するジェネレーター関数を使用します。
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
この更新されたコードは、指定された基準に一致する行を 1 行ずつ生成します。データセット全体をメモリ内に保持する必要がなくなります。
パフォーマンスの向上
メモリの最適化以外にも、パフォーマンスを向上させる追加の手法があります。
方法これらの戦略を採用すると、大きな CSV ファイルを処理するための Python コードの効率を大幅に向上させることができます。
以上がPython で大きな CSV ファイルを効果的に読み取って処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。