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
Libérer: 2024-12-24 04:43:13
original
197 Les gens l'ont consulté

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')
Copier après la connexion
Copier après la connexion

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]
})
Copier après la connexion

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')
Copier après la connexion
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal