Comment pouvez-vous utiliser « apply » et « transform » pour la soustraction de colonnes et le calcul de la moyenne avec Groupby ?

DDD
Libérer: 2024-11-21 09:00:11
original
537 Les gens l'ont consulté

How Can You Use `apply` and `transform` for Column Subtraction and Mean Calculation with Groupby?

Soustraction de deux colonnes et calcul de la moyenne à l'aide d'Appliquer et de Transformation

Différences entre Appliquer et Transformer

Lors de l'utilisation de groupby sur un DataFrame, appliquer et transformer ont distinct caractéristiques :

Entrée :

  • apply prend l'intégralité du DataFrame de chaque groupe en entrée.
  • transform traite chaque colonne de chaque groupe individuellement comme un Série.

Sortie :

  • apply peut renvoyer un scalaire, une série, un DataFrame (ou d'autres types de données).
  • La transformation nécessite une séquence de la même longueur que le groupe.

Fonction personnalisée pour Soustraction

Considérez la fonction personnalisée subtract_two pour soustraire la colonne « a » de « b » :

def subtract_two(x):
    return x['a'] - x['b']
Copier après la connexion

Utilisation d'application ou de transformation

1. Apply :

En utilisant apply, nous pouvons calculer la différence entre « a » et « b » pour chaque groupe, renvoyant une série :

df.groupby('A').apply(subtract_two)
Copier après la connexion

2. Transform :

Les tentatives d'utilisation de transform entraîneront une KeyError, car transform attend une séquence de la même longueur que le groupe :

df.groupby('A').transform(subtract_two)
# KeyError: 'a'
Copier après la connexion

Renvoi d'un scalaire à partir de Transform

Pour utiliser la transformation pour la soustraction, nous pouvons renvoyer un scalaire de notre fonction personnalisée et l'appliquer à toutes les lignes du group :

def subtract_two_scalar(x):
    return (x['a'] - x['b']).mean()

df.groupby('A').transform(subtract_two_scalar)
Copier après la connexion

Cela renvoie une série avec la différence moyenne pour chaque groupe.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal