Maison > développement back-end > Tutoriel Python > Comment puis-je diviser efficacement un grand DataFrame en sous-ensembles plus petits en fonction d'un identifiant unique ?

Comment puis-je diviser efficacement un grand DataFrame en sous-ensembles plus petits en fonction d'un identifiant unique ?

Barbara Streisand
Libérer: 2024-12-19 05:42:17
original
859 Les gens l'ont consulté

How Can I Efficiently Split a Large DataFrame into Smaller Subsets Based on a Unique Identifier?

Diviser de grands ensembles de données en sous-ensembles plus petits en fonction d'une colonne d'identifiant unique

Lorsque vous travaillez avec de grands ensembles de données, il peut être avantageux de les diviser en des sous-ensembles plus petits et gérables pour un traitement et une analyse plus efficaces. Cet article aborde la tâche spécifique consistant à diviser une grande trame de données contenant des millions de lignes en plusieurs trames de données, une pour chaque code unique attribué à un participant.

L'extrait de code fourni tente de diviser la trame de données à l'aide d'une boucle for pour itérer. parcourez chaque ligne et vérifiez si le code du participant correspond au code actuellement attribué. Bien que cette approche soit conceptuellement correcte, son exécution est inefficace et peut conduire à une durée d'exécution excessive pour les grands ensembles de données.

Au lieu de cela, une solution plus efficace peut être obtenue grâce à des techniques de manipulation de données. En utilisant la fonction unique() pour identifier des codes distincts, puis en appliquant la méthode filter() pour isoler les lignes associées à chaque code, nous pouvons créer des trames de données distinctes de manière transparente.

Dans le code amélioré ci-dessous, un dictionnaire est initialisé. pour stocker les trames de données résultantes, chaque code unique servant de clé de dictionnaire. La méthode filter() est utilisée pour extraire des lignes en fonction du code du participant, et les trames de données résultantes sont ajoutées au dictionnaire :

import pandas as pd
import numpy as np

# Create a dataframe with random data and 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 codes
participant_codes = data.Names.unique()

# Initialize a dictionary to store dataframes
participant_dataframes = {code: pd.DataFrame() for code in participant_codes}

# Iterate through unique codes and create dataframes for each participant
for code in participant_codes:
    participant_dataframes[code] = data[data.Names == code]

# Print dictionary keys to verify participant dataframes
print(participant_dataframes.keys())
Copier après la connexion

En utilisant des techniques de manipulation de données au lieu de boucles explicites, ce code fournit une approche plus solution efficace et évolutive pour diviser de grandes trames de données en fonction d'une colonne d'identifiant unique.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal