AcctName によって大きな Pandas DataFrame を効率的にチャンクにスライスする方法

Barbara Streisand
リリース: 2024-10-25 22:04:28
オリジナル
465 人が閲覧しました

How to Efficiently Slice a Large Pandas DataFrame into Chunks by AcctName?

Pandas - AcctName によって大きなデータフレームをチャンクにスライスします

データ分析では、大きなデータフレームを操作するとメモリ エラーが発生することがよくあります。これに対処するには、データフレームをより小さく管理しやすいチャンクに分割することが有益な戦略となる可能性があります。この記事では、特定の列、具体的には AcctName に基づいて大きなデータフレームをチャンクに効率的にスライスする方法について説明します。

このスライスを実現するには、リスト内包表記を使用できます。

<code class="python">import numpy as np
import pandas as pd

# Define the chunk size
n = 200,000

# Create a list to store the chunks
list_df = []

# Extract unique AcctName values
AcctNames = df['AcctName'].unique()

# Create a dictionary of dataframes for each AcctName
DataFrameDict = {acct: pd.DataFrame for acct in AcctNames}

# Split the dataframe into chunks by AcctName
for acct in DataFrameDict.keys():
    DataFrameDict[acct] = df[df['AcctName'] == acct]
    
    # Apply your function to the chunk
    trans_times_2(DataFrameDict[acct])
    list_df.append(DataFrameDict[acct])
    
# Rejoin the chunks into a single dataframe
rejoined_df = pd.concat(list_df)</code>
ログイン後にコピー

あるいは、次のようにすることもできます。 NumPy の array_split 関数を利用します:

<code class="python">list_df = np.array_split(df, math.ceil(len(df) / n))</code>
ログイン後にコピー

このアプローチでは、個別にアクセスできるチャンクのリストが作成されます。

元のデータフレームを再構築するには、単に pd.concat:

<code class="python">rejoined_df = pd.concat(list_df)</code>
ログイン後にコピー
これらの手法を利用すると、大きなデータフレームをより小さなチャンクに効果的にスライスし、必要な変換を適用して、結果のデータを 1 つのデータフレームに再構築できます。このアプローチにより、メモリ使用量が大幅に削減され、データ処理操作の効率が向上します。

以上がAcctName によって大きな Pandas DataFrame を効率的にチャンクにスライスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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