Maison > développement back-end > Tutoriel Python > Comment dissocier efficacement plusieurs colonnes de liste dans les DataFrames Pandas ?

Comment dissocier efficacement plusieurs colonnes de liste dans les DataFrames Pandas ?

Susan Sarandon
Libérer: 2024-11-17 16:01:02
original
386 Les gens l'ont consulté

How to Efficiently Unnest Multiple List Columns in Pandas DataFrames?

Destiner efficacement plusieurs colonnes de liste dans des DataFrames Pandas

Destiner (également connu sous le nom d'explosion) plusieurs colonnes de liste dans de grands DataFrames Pandas peut être une tâche gourmande en calcul, en particulier lorsque le la taille de l’ensemble de données est importante. Pour relever ce défi, nous explorons deux méthodes efficaces qui s'adaptent aux différentes versions de Pandas.

Pandas >= 1.3

Pour les versions Pandas 1.3 et supérieures, la méthode DataFrame.explode fournit un moyen simple pour exploser plusieurs colonnes simultanément. Cette méthode nécessite que toutes les valeurs des colonnes sélectionnées aient des listes de taille égale. Transmettez simplement les noms de colonnes à la méthode d'explosion, comme indiqué ci-dessous :

df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
Copier après la connexion

Pandas >= 0.25

Pour les anciennes versions de Pandas, nous pouvons utiliser Series.explode sur chaque colonne. Nous définissons d'abord comme index toutes les colonnes qui ne doivent pas être éclatées, puis réinitialisons l'index après l'opération.

df.set_index(['A']).apply(pd.Series.explode).reset_index()
Copier après la connexion

Considérations sur les performances

Les deux méthodes offrent des performances efficaces, comme le démontre ce qui suit timings sur un grand ensemble de données :

%timeit df2.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
%timeit df2.set_index(['A']).apply(pd.Series.explode).reset_index()

# Pandas >= 1.3 (fastest)
2.59 ms ± 112 µs per loop

# Pandas >= 0.25
1.27 ms ± 239 µs per loop
Copier après la connexion

En tirant parti de ces méthodes efficaces, nous pouvons efficacement dissocier plusieurs colonnes de liste dans Pandas DataFrames de toute taille, permettant une analyse et une manipulation transparentes des données.

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