Maison >développement back-end >Tutoriel Python >Comment puis-je diviser efficacement un grand DataFrame Pandas en DataFrames plus petits en fonction des identifiants des participants ?

Comment puis-je diviser efficacement un grand DataFrame Pandas en DataFrames plus petits en fonction des identifiants des participants ?

DDD
DDDoriginal
2024-12-17 11:09:25705parcourir

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

Diviser de grandes trames de données en trames de données plus petites

Problème :

Vous disposez d'une trame de données massive avec plus d'un million d'enregistrements représentant des données à partir d'une expérience avec 60 participants. Chaque participant dispose d'un code unique stocké dans la variable 'name' du dataframe. Votre objectif est de diviser le dataframe en 60 dataframes plus petits, un pour chaque participant.

Tentative originale :

Votre approche initiale pour y parvenir via une fonction personnalisée appelée splitframe n'a pas abouti. Cela ne donne pas de résultats dans l'heure suivant l'exécution. La fonction visait à parcourir le dataframe, en ajoutant de manière itérative des lignes à des dataframes plus petits et en les ajoutant à une liste jusqu'à ce qu'un nouveau participant soit identifié, auquel cas elle créerait un nouveau dataframe pour le participant suivant.

Solution utilisant le Dataframe Slicing :

Au lieu de diviser le dataframe de manière itérative, vous pouvez utiliser une approche plus efficace en utilisant le dataframe trancher. Voici comment procéder :

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]

Résultat :

Ce code créera un dictionnaire appelé data_dict. Chaque clé du dictionnaire représente un nom de participant et la valeur correspondante est une trame de données pandas contenant toutes les données de ce participant particulier. Vous pouvez accéder au dataframe de chaque participant en utilisant la syntaxe suivante :

participant_data = data_dict['ParticipantName']

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