ホームページ >バックエンド開発 >Python チュートリアル >参加者 ID に基づいて大きな Pandas データフレームをより小さなデータフレームに効率的に分割するにはどうすればよいですか?
問題:
データを表すレコードが 100 万を超える大規模なデータフレームがあるとします。 60人の参加者による実験から。各参加者は、データフレームの「name」変数に格納された一意のコードを持ちます。データフレームを、参加者ごとに 1 つずつ、60 個の小さなデータフレームに分割することを目的としています。
元の試み:
splitframe と呼ばれるカスタム関数を使用してこれを達成する最初のアプローチでは、実行後 1 時間以内に結果が得られません。この関数は、データフレームをループすることを目的としており、新しい参加者が識別されるまで、より小さいデータフレームに行を繰り返し追加し、リストに追加します。識別された時点で、後続の参加者用に新しいデータフレームを作成します。
データフレーム スライスを使用した解決策:
データフレームを繰り返し分割する代わりに、次を使用してより効率的なアプローチを採用できます。データフレームのスライス。その方法は次のとおりです:
import pandas as pd # Create a list of unique participant names unique_names = data['name'].unique() # Initialize a dictionary to store the split dataframes data_dict = {} # Iterate over the unique names for name in unique_names: # Create a new dataframe by slicing the original dataframe data_dict[name] = data[data['name'] == name]
結果:
このコードは、data_dict という辞書を作成します。ディクショナリ内の各キーは参加者名を表し、対応する値はその特定の参加者のすべてのデータを含む pandas データフレームです。次の構文を使用して、各参加者のデータフレームにアクセスできます:
participant_data = data_dict['ParticipantName']
以上が参加者 ID に基づいて大きな Pandas データフレームをより小さなデータフレームに効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。