Maison >développement back-end >Tutoriel Python >Comment ajouter une nouvelle colonne avec une sommation groupée dans Pandas à l'aide de « transform() » ?
Lors de la tentative de création d'une nouvelle colonne basée sur la somme d'une valeur regroupés par date à l'aide de groupby() de pandas, des résultats NaN sont rencontrés. L'objectif est d'ajouter une colonne qui affiche la somme totale d'une valeur spécifique pour toutes les dates, quel que soit le nombre de lignes associées à cette date.
Pour y parvenir, la transformation () la fonction est utilisée. Contrairement à la fonction apply(), qui fonctionne ligne par ligne, transform() effectue des calculs sur des données groupées et renvoie une série alignée sur la trame de données d'origine.
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Voici une présentation étape par étape. :
Considérez le dataframe suivant :
Date Sym Data2 Data3 0 2015-05-08 aapl 11 5 1 2015-05-07 aapl 8 8 2 2015-05-06 aapl 10 6 3 2015-05-05 aapl 15 1 4 2015-05-08 aaww 110 50 5 2015-05-07 aaww 60 100 6 2015-05-06 aaww 100 60 7 2015-05-05 aaww 40 120
Application de la fonction transform() :
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Résultats en :
Date Sym Data2 Data3 Data4 0 2015-05-08 aapl 11 5 55 1 2015-05-07 aapl 8 8 108 2 2015-05-06 aapl 10 6 66 3 2015-05-05 aapl 15 1 121 4 2015-05-08 aaww 110 50 55 5 2015-05-07 aaww 60 100 108 6 2015-05-06 aaww 100 60 66 7 2015-05-05 aaww 40 120 121
Comme Comme le montre la sortie, la colonne « Data4 » contient désormais la somme de « Data3 » pour chaque « Date » unique. valeur.
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!