ホームページ > バックエンド開発 > Python チュートリアル > Python 2.7 で大きな CSV ファイルを効率的に読み取るにはどうすればよいですか?

Python 2.7 で大きな CSV ファイルを効率的に読み取るにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-19 16:42:03
オリジナル
213 人が閲覧しました

How Can I Efficiently Read Large CSV Files in Python 2.7?

Python 2.7 で大きな CSV ファイルを読み取る

Python 2.7 で巨大な CSV ファイルを読み取るという課題を解決すると、特にファイルの場合にメモリの問題が発生する可能性があります。 300,000 行を超えています。このハードルを乗り越えるには、ファイル全体をメモリに読み込まないようにすることが重要です。

メモリ管理テクニック

ジェネレーターを使用すると、メモリ効率の高い処理が可能になります。リスト内のすべての行を蓄積する代わりに、各行を個別に生成します。 getstuff 関数のジェネレーターに代表されるこのアプローチは、メモリ消費を大幅に削減します。

さらに、itertools モジュールの Dropwhile 関数や takewhile 関数などの最適化を検討してください。これらは、無関係な行をスキップすることで効率的なフィルタリングを促進し、メモリをさらに節約します。

パフォーマンスの最適化

メモリ管理を超えて、パフォーマンスを向上させるには、不必要な操作を最小限に抑えることが必要です。 getdata 関数は、getstuff ジェネレーターを直接反復処理して、不要な中間リストを排除する必要があります。

使用例

ジェネレーターを使用してコードを再加工すると、より効率的なソリューションが得られます。

def getstuff(filename, criterion):
    ...  # Same generator code as above

def getdata(filename, criteria):
    ...  # Same generator code as above

# Process rows directly
for row in getdata(somefilename, sequence_of_criteria):
    ...  # Process the current row
ログイン後にコピー

このコードは一度に 1 行を効果的に処理するため、膨大な CSV ファイルであってもメモリ使用量が大幅に削減され、パフォーマンスが向上します。

以上がPython 2.7 で大きな CSV ファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート