ホームページ >バックエンド開発 >Python チュートリアル >参加者 ID に基づいて大きな Pandas データフレームをより小さなデータフレームに効率的に分割するにはどうすればよいですか?

参加者 ID に基づいて大きな Pandas データフレームをより小さなデータフレームに効率的に分割するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-17 11:09:25671ブラウズ

How Can I Efficiently Split a Large Pandas DataFrame into Smaller DataFrames Based on Participant IDs?

大きなデータフレームを小さなデータフレームに分割する

問題:

データを表すレコードが 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 サイトの他の関連記事を参照してください。

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