"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment ajouter une colonne avec des comptes de groupes à une trame de données groupée dans Pandas ?

Comment ajouter une colonne avec des comptes de groupes à une trame de données groupée dans Pandas ?

Publié le 2024-11-06
Parcourir:240

How to Add a Column with Group Counts to a Grouped Dataframe in Pandas?

Comment ajouter une colonne à un dataframe groupé dans Pandas

Dans l'analyse des données, il est souvent nécessaire de regrouper les données et d'effectuer des calculs sur chaque groupe. Pandas offre un moyen pratique de le faire grâce à sa fonction groupby. Une tâche courante consiste à compter les valeurs d'une colonne au sein de chaque groupe et à ajouter une colonne contenant ces chiffres au dataframe.

Considérez le dataframe df :

df = pd.DataFrame({'c':[1,1,1,2,2,2,2],'type':['m','n','o','m','m','n','n']})

Pour compter les valeurs de type pour chaque c, on peut utiliser la fonction value_counts sur la dataframe groupée :

g = df.groupby('c')['type'].value_counts().reset_index(name='t')

Cela crée une nouvelle trame de données g avec le nombre de groupes. Pour ajouter une colonne à g avec la taille de chaque groupe, nous pouvons utiliser la fonction de transformation :

g['size'] = df.groupby('c')['type'].transform('size')

transform applique une fonction à chaque groupe dans la trame de données d'origine et renvoie une série avec son index aligné sur la trame de données d'origine. Dans ce cas, nous utilisons la fonction size pour compter le nombre d'éléments dans chaque groupe et l'attribuer à la nouvelle taille de colonne. La trame de données g résultante ressemblera désormais à ceci :

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4

Cela montre un moyen simple d'ajouter une nouvelle colonne à un dataframe groupé en fonction des résultats d'une agrégation groupby.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729308796. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3