Maison >développement back-end >Tutoriel Python >Comment puis-je diviser efficacement un DataFrame Pandas en DataFrames spécifiques aux participants ?

Comment puis-je diviser efficacement un DataFrame Pandas en DataFrames spécifiques aux participants ?

DDD
DDDoriginal
2024-11-30 20:07:14348parcourir

How Can I Efficiently Split a Pandas DataFrame into Participant-Specific DataFrames?

Diviser le dataframe en dataframes spécifiques aux participants

Vous disposez d'un grand dataframe avec les données de 60 répondants et vous cherchez un moyen de le diviser en des dataframes individuelles pour chaque participant. Le code unique de chaque participant est stocké dans une variable appelée « nom ».

Au départ, vous avez tenté d'utiliser une fonction personnalisée pour ajouter des trames de données basées sur la variable « nom », mais l'exécution a pris un temps inhabituellement long. .

Une approche plus efficace consiste à utiliser le découpage dans Pandas DataFrame. Le code suivant fournit une solution :

import pandas as pd
import numpy as np

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

# Create a unique list of names
UniqueNames = data.Names.unique()

# Create a dictionary to store the split dataframes
DataFrameDict = {elem: pd.DataFrame() for elem in UniqueNames}

# Iterate through UniqueNames and slice the original data
for key in DataFrameDict.keys():
    DataFrameDict[key] = data[data.Names == key]

# Access a specific dataframe using its name
specific_dataframe = DataFrameDict['Joe']

Cette approche crée rapidement des trames de données individuelles pour chaque participant, la colonne « Noms » étant utilisée pour le découpage. Les dataframes résultantes sont organisées dans un dictionnaire, DataFrameDict, permettant un accès facile.

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