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!