Maison >développement back-end >Tutoriel Python >Comment éviter les valeurs NaN lors de l'ajout de résultats pandas groupby().sum() à une nouvelle colonne ?

Comment éviter les valeurs NaN lors de l'ajout de résultats pandas groupby().sum() à une nouvelle colonne ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 11:53:11904parcourir

How to Avoid NaN Values When Adding pandas groupby().sum() Results to a New Column?

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!

Déclaration:
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