ホームページ >データベース >mysql チュートリアル >データベースから大規模な Pandas データフレームを作成するときにメモリ エラーを回避するにはどうすればよいですか?

データベースから大規模な Pandas データフレームを作成するときにメモリ エラーを回避するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-13 09:31:12309ブラウズ

How Can I Avoid Memory Errors When Creating Large Pandas DataFrames from Databases?

大規模なデータベースと Pandas DataFrame を操作する場合のメモリの管理

大規模なデータベースを処理して Pandas DataFrame に直接ロードすると、メモリ エラーが発生することがよくあります。 小規模なクエリは機能する可能性がありますが、システム メモリ容量を超えると問題が発生します。 幸いなことに、Pandas はそのようなデータセットを処理するための効率的なソリューションを提供します。

チャンクサイズ反復子メソッド

大きな CSV ファイルの処理と同様に、Pandas の read_sql 関数は iterator および chunksize パラメーターを提供します。 iterator=True を設定し、chunksize を指定すると、管理可能な部分でデータベース クエリを処理できます。

コード例:

<code class="language-python">import pandas as pd

sql = "SELECT * FROM MyTable"
chunksize = 10000  # Adjust as needed

for chunk in pd.read_sql_query(sql, engine, chunksize=chunksize):
    # Process each chunk individually</code>

この反復的なアプローチでは、より小さく制御された増分でデータを処理することでメモリの過負荷を防ぎます。

非常に大規模なデータセットを処理するための追加戦略

チャンクサイズの方法が十分でない場合は、次の代替手段を検討してください。

  • 直接 SQL クエリ: データベースのドライバーを使用してクエリを実行し、データベースから直接小さなバッチでデータを取得します。
  • バッチ クエリ: クエリ全体を複数の小規模な対象を絞ったクエリに分割し、結果をバッチで処理します。
  • 外部ファイル ストレージ: データをチャンク内の CSV などのファイル形式にクエリし、必要に応じてファイルを Pandas にロードします。 これにより、データセット全体を一度にメモリ内に保持することが回避されます。

以上がデータベースから大規模な Pandas データフレームを作成するときにメモリ エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。