Maison >développement back-end >Tutoriel Python >Comment puis-je diviser efficacement un grand DataFrame en DataFrames individuels par ID de participant ?

Comment puis-je diviser efficacement un grand DataFrame en DataFrames individuels par ID de participant ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 10:25:09774parcourir

How Can I Efficiently Split a Large DataFrame into Individual DataFrames by Participant ID?

Diviser un DataFrame massif en DataFrames individuels par ID de participant

Considérez un scénario dans lequel vous possédez un DataFrame colossal contenant les données d'une expérience impliquant 60 participants. Votre objectif est de diviser ce volumineux DataFrame en 60 DataFrames distincts, chacun représentant un participant individuel. Une variable essentielle, « nom », identifie de manière unique chaque participant au sein du DataFrame.

Une tentative d'accomplir cette tâche à l'aide d'une fonction personnalisée, « splitframe », s'est avérée infructueuse, ce qui soulève la question d'une solution plus efficace.

Une approche supérieure : découpage de trames de données

Une stratégie alternative consiste à utiliser des techniques de découpage pour séparer le DataFrame. Voici comment :

  1. Générez une liste distinctive de noms de participants (« UniqueNames ») à l'aide de la colonne « Noms » du DataFrame.
  2. Établissez un dictionnaire pour accueillir les DataFrames individuels, en utilisant la liste 'UniqueNames' comme clés.
  3. Parcourez chaque nom de participant et attribuez les données correspondantes à un DataFrame dans le dictionnaire.

Cette approche, utilisant le découpage, fournit une méthode plus simple et plus efficace pour créer des DataFrames individuels pour chaque participant :

# Create a DataFrame with a 'Names' column
data = pd.DataFrame({
    'Names': ['Joe', 'John', 'Jasper', 'Jez'] * 4,
    'Ob1': np.random.rand(16),
    'Ob2': np.random.rand(16)
})

# Extract unique participant names
UniqueNames = data['Names'].unique()

# Initialize a dictionary to store individual DataFrames
DataFrameDict = {elem: pd.DataFrame() for elem in UniqueNames}

# Populate the dictionary with individual DataFrames
for key in DataFrameDict.keys():
    DataFrameDict[key] = data[data['Names'] == key]

Accès aux DataFrames individuels

Pour accéder à un DataFrame spécifique pour un participant particulier, utilisez simplement la clé du dictionnaire correspondant au participant nom, comme démontré ci-dessous :

DataFrameDict['Joe']

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn