Maison >développement back-end >Tutoriel Python >Comment créer une nouvelle colonne dans Pandas DataFrame à l'aide de Groupby().sum() et .transform() ?

Comment créer une nouvelle colonne dans Pandas DataFrame à l'aide de Groupby().sum() et .transform() ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 04:43:13237parcourir

How to Create a New Column in Pandas DataFrame Using Groupby().sum() and .transform()?

Création d'une nouvelle colonne à partir de la sortie de Pandas Groupby().sum()

Lorsque vous travaillez avec des données en Python, c'est souvent nécessaire pour effectuer des calculs et créer de nouvelles colonnes dans un DataFrame en fonction des valeurs existantes. Dans cet exemple, nous cherchons à créer une nouvelle colonne (Data4) contenant la somme de Data3 pour chaque Date.

Utilisation de .transform()

Pour réaliser ceci, nous pouvons utiliser la méthode .transform() sur la colonne Data3 groupée. .transform() applique une fonction à chaque groupe et renvoie une série avec l'index aligné sur le DataFrame d'origine. Cela nous permet d'ajouter les valeurs calculées dans une nouvelle colonne.

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

Dans l'exemple DataFrame fourni :

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

En utilisant .transform(), nous calculons la somme de Data3 pour chaque Date et attribuez-la à la nouvelle colonne Data4 :

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

Le DataFrame résultant aura le Data4 souhaité colonne :

         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

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