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
Libérer: 2024-12-17 09:38:24
original
345 Les gens l'ont consulté

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
Copier après la connexion

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]
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

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')
Copier après la connexion

Le dataframe résultant ressemblera à ceci :

   a        new
0  A     [1, 2]
1  B  [5, 5, 4]
2  C        [6]
Copier après la connexion

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