Maison >développement back-end >Tutoriel Python >Comment puis-je regrouper les lignes DataFrame dans des listes à l'aide de Pandas Groupby ?

Comment puis-je regrouper les lignes DataFrame dans des listes à l'aide de Pandas Groupby ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-17 09:38:24389parcourir

How Can I Group DataFrame Rows into Lists Using Pandas Groupby?

Regroupement des lignes DataFrame dans des listes dans Pandas GroupBy

De nombreux ensembles de données contiennent des informations redondantes sur les lignes. Afin d’extraire des informations significatives, il est souvent nécessaire de regrouper les lignes en fonction d’un attribut commun. Cela permet l’agrégation et la manipulation des données au sein de chaque groupe. Dans cet article, nous allons explorer comment regrouper les lignes d'un dataframe en listes dans Pandas groupby.

Regroupement et agrégation

Considérons un dataframe avec deux colonnes, « a » et « b » :

a b
A 1
A 2
B 5
B 5
B 4
C 6

Le but est de regrouper les lignes par la première colonne (« a ») et de créer une liste des valeurs dans la deuxième colonne ('b') pour chaque groupe. Le résultat souhaité est :

A [1,2]
B [5,5,4]
C [6]

Pour y parvenir, nous pouvons utiliser les fonctions groupby et apply de Pandas. La fonction groupby regroupe les lignes par colonne spécifiée, tandis que la fonction apply nous permet d'effectuer une opération sur chaque groupe. Dans ce cas, nous appliquerons la fonction list pour créer une liste de valeurs pour chaque groupe.

df.groupby('a')['b'].apply(list)

Ce code renverra un objet Series contenant les listes de valeurs pour chaque groupe :

a
A       [1, 2]
B    [5, 5, 4]
C          [6]
Name: b, dtype: object

Création d'un nouveau Dataframe

Pour créer un nouveau dataframe avec les listes groupées, nous pouvons utiliser la fonction reset_index pour convertir l'objet Series en un nouveau dataframe et renommez la colonne contenant les listes :

df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')

Le dataframe résultant ressemblera à ceci :

   a        new
0  A     [1, 2]
1  B  [5, 5, 4]
2  C        [6]

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