Maison >développement back-end >Tutoriel Python >Comment exploser des listes dans des DataFrames Pandas ?

Comment exploser des listes dans des DataFrames Pandas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-03 11:45:12301parcourir

How to Explode Lists Within Pandas DataFrames?

Listes explosives chez les pandas

Énoncé du problème

Chez les pandas, vous peut rencontrer des trames de données avec des cellules contenant des listes de valeurs multiples. Au lieu de stocker plusieurs valeurs dans une seule cellule, il peut être avantageux d'étendre le cadre de données afin que chaque élément de la liste occupe sa propre ligne.

Solution pour les pandas >= 0,25

Pandas version 0.25 et supérieure introduisent le .explode() méthode pour Series et DataFrame. Cette méthode sépare efficacement les éléments de la liste en lignes distinctes.

Pour exploser une colonne, utilisez simplement la syntaxe suivante :

df.explode('column_name')

Par exemple, considérons le dataframe suivant :

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)]
    }
)

Pour exploser la colonne « échantillons », nous utiliserions :

df_exploded = df.explode('samples')

Cela produirait le résultat souhaité sortie :

   subject  trial_num  samples
0        1          1    0.57
1        1          1   -0.83
2        1          1    1.44
3        1          2   -0.01
4        1          2    1.13
5        1          2    0.36
6        1          3    1.18
# etc.

Remarque pour les colonnes mixtes

La méthode .explode() peut gérer des colonnes mixtes de listes et de scalaires, ainsi que des listes vides et des NaN. Cependant, il est important de noter que il ne peut exploser qu'une seule colonne à la fois.

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