ホームページ  >  記事  >  バックエンド開発  >  メモリ エラーを回避するために Pandas で大きな DataFrame を効果的に処理するにはどうすればよいですか?

メモリ エラーを回避するために Pandas で大きな DataFrame を効果的に処理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 01:24:28263ブラウズ

How can I effectively handle large DataFrames in Pandas to avoid memory errors?

Pandas - 大きな DataFrame をチャンクにスライスする

大きな DataFrame は、特に関数に渡す場合に扱いが難しい場合があります。大きな DataFrame を操作するときにメモリ エラーが発生する可能性があり、DataFrame を小さなチャンクにスライスすると、この問題を軽減できます。

DataFrame をより小さなチャンクにスライスするには:

  1. リスト内包表記: リスト内包表記を利用して、より小さい DataFrame のリストを作成します。
<code class="python">n = 200000  # chunk row size
list_df = [df[i:i+n] for i in range(0, df.shape[0], n)]</code>
  1. Numpy array_split: numpy の array_split 関数を利用して DataFrame を分割します。
<code class="python">list_df = np.array_split(df, math.ceil(len(df)/n))</code>

チャンクにアクセスするには、リストにインデックスを付けるだけです:

<code class="python">list_df[0]
list_df[1]
etc...</code>

AcctName で DataFrame を分割します:

<code class="python">list_df = []

for n, g in df.groupby('AcctName'):
    list_df.append(g)</code>

DataFrame が分割されたらチャンクに分割した場合は、関数を介して渡し、pd.concat.

を使用して単一の DataFrame に再構築できます。

以上がメモリ エラーを回避するために Pandas で大きな DataFrame を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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