Comment remplir une nouvelle colonne avec la sortie de pandas groupby().sum()
Lorsque vous travaillez avec des données, cela peut être utile pour créer une nouvelle colonne dans un DataFrame en fonction des résultats d'un calcul spécifique. L'un de ces calculs consiste à utiliser les fonctions groupby() et sum() dans pandas pour trouver la somme des valeurs d'un groupe particulier dans une colonne. Cependant, lorsque vous essayez de créer une nouvelle colonne avec cette somme, il est possible de rencontrer des valeurs NaN.
Considérez le code suivant :
df = pd.DataFrame({ 'Date' : ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym' : ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40], 'Data3': [5, 8, 6, 1, 50, 100, 60, 120] }) group = df['Data3'].groupby(df['Date']).sum() df['Data4'] = group
Lors de l'exécution de ce code, vous pouvez vous attendre à voir les valeurs calculées correctes pour chaque date (comme indiqué dans la variable de groupe), mais à la place, vous obtenez des valeurs NaN dans la colonne Data4 nouvellement créée.
Pour résoudre ce problème, vous devez utilisez la fonction de transformation. Cette fonction renvoie une série avec l'index aligné sur le DataFrame, vous permettant de l'ajouter en tant que nouvelle colonne. Voici le code corrigé :
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Avec cette modification, vous réussirez à créer une nouvelle colonne Data4 avec les valeurs additionnées souhaitées.
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!