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

Comment exploser efficacement les colonnes de type liste dans les DataFrames Pandas ?

Barbara Streisand
Libérer: 2024-11-27 15:44:11
original
899 Les gens l'ont consulté

How to Effectively Explode List-Like Columns in Pandas DataFrames?

Explosion de colonnes de type liste : guide pour étendre les cadres de données

Problème :

Dans Dataframes Pandas, certaines cellules peuvent contenir des listes de plusieurs valeurs. Le but est de transformer le dataframe pour que chaque élément de la liste occupe une ligne distincte, tout en préservant les valeurs dans les autres colonnes.

Solution :

Méthode 1 : répéter()

Avant Pandas 0.25, la méthode répéter() était couramment utilisée pour exploser la liste colonnes :

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

# Expand 'samples' column into separate rows using repeat()
df_exploded = df.assign(
    samples=df['samples'].str.join(',').str.split(',')
).explode('samples')

df_exploded = df_exploded.reset_index(drop=True)

# Add sample_num column to track list element order
df_exploded['sample_num'] = df_exploded.groupby('trial_num').cumcount()
Copier après la connexion

Méthode 2 : exploser() (Pandas >= 0.25)

Avec la sortie de Pandas 0.25, la méthode .explode() fournit une solution élégante :

df.explode('samples').reset_index(drop=True)
Copier après la connexion

Cette méthode gère automatiquement les listes vides et préserve les NaN, garantissant une conversion complète.

Remarque :

  • La méthode basée sur la répétition peut gérer l'explosion de colonnes de chaînes, mais nécessite d'abord de les diviser sur un séparateur.
  • La méthode éclater() explose une seule colonne à la fois.
  • Les trames de données éclatées peuvent nécessiter un traitement supplémentaire pour établir une image unique. indexer et renuméroter les éléments de la liste.

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