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.
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
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!