ホームページ >バックエンド開発 >Python チュートリアル >Pandas で大規模なデータフレームを効率的に処理する方法: チャンクアップ!

Pandas で大規模なデータフレームを効率的に処理する方法: チャンクアップ!

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 07:57:03592ブラウズ

How to Efficiently Process Large DataFrames in Pandas: Chunk It Up!

Pandas - 大きなデータフレームをチャンクにスライスする

サイズ超過のデータフレームを処理しようとすると、一般的な障害となるのが恐ろしいメモリ エラーです。効果的な解決策の 1 つは、データフレームをより小さく管理しやすいチャンクに分割することです。この戦略は、メモリ消費量を削減するだけでなく、効率的な処理も促進します。

これを達成するには、リスト内包表記または NumPy array_split 関数を利用できます。

リスト内包表記

<code class="python">n = 200000  # Chunk row size
list_df = [df[i:i+n] for i in range(0, df.shape[0], n)]</code>

NumPy array_split

<code class="python">list_df = np.array_split(df, math.ceil(len(df) / n))</code>

次を使用して個々のチャンクを取得できます:

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

チャンクを単一のデータフレームに再構築するには、pd.concat:

<code class="python"># Example: Concatenating by chunks
rejoined_df = pd.concat(list_df)</code>
を使用します。

AcctName によるスライス

AcctName 値によってデータフレームを分割するには、groupby メソッドを利用します。

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

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

以上がPandas で大規模なデータフレームを効率的に処理する方法: チャンクアップ!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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