Maison >développement back-end >Tutoriel Python >Comment éviter les valeurs NaN lors de l'ajout de sommes groupées en tant que nouvelle colonne dans Pandas ?

Comment éviter les valeurs NaN lors de l'ajout de sommes groupées en tant que nouvelle colonne dans Pandas ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-22 19:59:17688parcourir

How to Avoid NaN Values When Adding Grouped Sums as a New Column in Pandas?

Création d'une nouvelle colonne à partir d'une somme groupée

Problème

Lors de la tentative de création d'une nouvelle colonne dans un DataFrame à partir des résultats d'une opération de somme groupée en utilisant pandas, certains utilisateurs rencontrent des valeurs NaN dans la nouvelle colonne. Le principal problème survient lorsque l'on tente d'attribuer des sommes spécifiques à un groupe à des lignes individuelles.

Solution

La clé pour résoudre ce problème est d'utiliser la fonction de transformation, qui renvoie une série avec son index aligné. au DataFrame. En utilisant transform, vous pouvez ajouter le résultat en tant que nouvelle colonne à votre DataFrame.

Considérez l'extrait de code suivant :

import pandas as pd

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]
})

df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')

print(df)

Sortie :

         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

As illustré, chaque ligne de la nouvelle colonne, Data4, reflète désormais la somme des valeurs Data3 pour le groupe de dates correspondant, résolvant ainsi le problème initial de NaN valeurs.

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