Tips

今日の開発Tips(2025-07-30)

このTipsでは、Pythonで大量のデータ処理を行う際にメモリ効率を向上させるためのテクニックを紹介します。イテレータを使うことで、一度にすべてのデータをメモリに読み込むことなく処理できます。これにより、メモリ不足エラーを防ぎ、大規模なデータセットに対しても効率的に処理できます。

Pythonイテレータによるメモリ効率の良いデータ処理

巨大なファイルやデータセットを処理する際に、メモリ消費を抑えるためには、イテレータを活用しましょう。イテレータは、データ全体を一度にメモリにロードするのではなく、必要なデータのみを逐次的に生成するため、メモリ効率が非常に高くなります。 特に、ファイル処理やデータベースアクセスなど、大量のデータを扱う場面で有効です。

import csv

def process_large_file(filepath):
    with open(filepath, 'r', encoding='utf-8') as file:
        reader = csv.reader(file)
        next(reader)  # ヘッダー行をスキップ
        for row in reader:
            # 各行に対する処理
            process_row(row)

def process_row(row):
    # 各行のデータに対する処理
    # 例: データの加工、データベースへの書き込みなど
    print(row)


# 使用例
process_large_file('large_data.csv')

注意点:イテレータは一度に一つのデータしか扱わないため、前のデータを参照する必要がある処理には適さない場合があります。データの前後関係が必要な場合は、適切なバッファリング戦略を検討する必要があります。 また、csvモジュール以外にも、pandasライブラリなどの適切なライブラリを選択することで、より効率的な処理が可能になる場合があります。