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