Comment ajouter des colonnes agrégées à des DataFrames groupés dans Pandas ?

Patricia Arquette
Libérer: 2024-10-19 11:46:01
original
505 Les gens l'ont consulté

How to Add Aggregated Columns to Grouped DataFrames in Pandas?

Ajout de colonnes à des DataFrames groupés dans Pandas

Lorsque vous travaillez avec des dataframes dans Pandas, il est souvent nécessaire de regrouper les données et d'agréger les valeurs au sein de celles-ci. groupes. En règle générale, cela implique la création d'une trame de données distincte avec les résultats de l'agrégation. Cependant, il peut également être utile d'ajouter ces colonnes agrégées directement au dataframe d'origine.

Illustrons cela avec un exemple simple de dataframe :

<code class="python">df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})</code>
Copier après la connexion

Pour compter les valeurs de 'type' pour chaque valeur de 'c', nous pouvons utiliser le code suivant :

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')</code>
Copier après la connexion

Cela crée un nouveau dataframe 'g' avec trois colonnes : 'c', 'type' et 't' représentant le nombre de chaque « type » dans chaque « c ».

Ensuite, nous pouvons utiliser la méthode « size() » pour compter le nombre de lignes dans chaque groupe :

<code class="python">a = df.groupby('c').size().reset_index(name='size')</code>
Copier après la connexion

Ceci crée un nouveau dataframe 'a' avec deux colonnes : 'c' et 'size' contenant le nombre de lignes dans chaque groupe 'c'.

Pour ajouter la colonne 'size' au dataframe d'origine, une option consiste à utiliser la fonction 'map()' comme indiqué dans la question. Cependant, une approche plus simple consiste à utiliser la méthode 'transform()' :

<code class="python">g['size'] = df.groupby('c')['type'].transform('size')</code>
Copier après la connexion

La méthode 'transform()' renvoie une série avec son index aligné sur la trame de données d'origine. En attribuant cette série à une nouvelle colonne dans le dataframe groupé, nous ajoutons effectivement les valeurs agrégées au dataframe d'origine.

Le dataframe résultant 'g' contiendra désormais la colonne 'size' supplémentaire :

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

Cette approche fournit un moyen simple et efficace d'ajouter des colonnes agrégées à des trames de données groupées dans Pandas.

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