Quand utiliser Pandas apply vs transform pour les opérations de données groupées ?

Susan Sarandon
Libérer: 2024-11-11 08:02:02
original
818 Les gens l'ont consulté

When to Use Pandas apply vs transform for Grouped Data Operations?

Dans Pandas, apply et transform peuvent être utilisés pour effectuer des opérations sur des données groupées. Cependant, il existe quelques différences clés entre les deux méthodes.

Input Type

  • apply transmet l'intégralité du DataFrame pour chaque groupe en entrée de la fonction personnalisée.
  • transform transmet chaque colonne du DataFrame pour chaque groupe individuellement en entrée de la fonction personnalisée.

Type de sortie

  • apply peut renvoyer un scalaire, une série ou un DataFrame.
  • transform doit renvoyer une séquence (par exemple, une série, un tableau ou une liste) de la même longueur que le groupe.

Transformation

  • apply peut être utilisé pour effectuer des transformations sur un DataFrame, telles que l'agrégation de valeurs, le filtrage de lignes ou la modification de données.
  • transform est principalement utilisé pour effectuer opérations par lignes au sein d'un groupe, telles que la mise à l'échelle des valeurs ou l'ajout de nouvelles colonnes.

Exemple

Considérez le DataFrame suivant :

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': randn(8), 'D': randn(8)})
Copier après la connexion

Pour soustraire la colonne C de la colonne D au sein de chaque groupe à l'aide de apply :

df.groupby('A').apply(lambda x: (x['C'] - x['D']))
Copier après la connexion

Pour soustraire la colonne C de la colonne D au sein de chaque groupe à l'aide de transform :

df.groupby('A').transform(lambda x: (x['C'] - x['D']).mean())
Copier après la connexion

Notez que le La fonction lambda passée à transform renvoie la moyenne de la différence entre C et D, ce qui donne une colonne transformée avec la même forme que le DataFrame d'origine.

Quand utiliser apply vs transform :

  • Utilisez apply lorsque vous devez accéder à plusieurs colonnes au sein d'un groupe ou effectuer des opérations qui aboutissent à une forme de sortie différente (par exemple, agréger des valeurs ou filtrer des lignes).
  • Utilisez transform lorsque vous devez effectuer des opérations par ligne au sein d'un groupe et souhaitez créer une nouvelle colonne ou variable avec la même forme que les données d'entrée.

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