Fonction de transformation en Python, Pandas

Contenu

introduction

La fonction Transformer en fonction Pandas (Python) ça peut être un peu difficile à comprendre, surtout s'il vient d'un Se démarquer antécédents. Franchement, la plupart des data scientists ne l'utilisent pas immédiatement dans leur parcours d'apprentissage.

Mais la fonction de transformation Pandas est en fait un outil très utile en tant que data scientist !! C'est une fonctionnalité puissante sur laquelle vous pouvez vous appuyer pour l'ingénierie des fonctionnalités dans Piton.

transformer-fonction-en-python-6315934

Personnellement, J'ai commencé à l'utiliser lorsque je cherchais à effectuer de l'ingénierie de fonction lors d'un hackathon, et j'ai été agréablement surpris par la rapidité avec laquelle la fonction Transform a fonctionné. Je crois fermement que vous bénéficierez de la connaissance et de l'utilisation de la fonction de transformation et, donc, J'ai décidé d'écrire sur elle dans cet article.

Apprendre les bases de Python et Pandas pour la science des données, consultez ces cours populaires:

Table des matières

  1. Quelle est la fonction de transformation en Python?
  2. Pourquoi la fonction de transformation est-elle importante?
  3. Appliquer ou transformer la fonction en Python

1. Quelle est la fonction de transformation en Python?

La fonction Transform de Python renvoie une trame de données auto-produite avec des valeurs transformées après avoir appliqué la fonction spécifiée dans son paramètre. Cette trame de données a la même longueur que la trame de données passée.

C'était beaucoup à prendre, alors permettez-moi de le décomposer avec un exemple.

Disons que nous voulons multiplier 10 pour chaque élément d'un bloc de données:

Le bloc de données d'origine ressemble à ceci:

tableau4-1392985

C'est le cadre de données que nous obtenons après l'application de la fonction de transformation de Python:

tableau 5-3752771

2. Pourquoi la fonction de transformation de Python est-elle importante?

La transformation est utile lors de l'extraction de caractéristiques. Comme le nom le suggère, nous extrayons de nouvelles fonctions à partir de celles existantes. Comprenons l'importance de la fonction de transformation à l'aide d'un exemple.

Ici, nous avons un ensemble de données sur un grand magasin:

tableau1-9819946

Nous pouvons voir que chaque utilisateur a acheté plusieurs produits avec des montants d'achat différents. Nous aimerions savoir quel est le montant moyen d'achat de chaque utilisateur. Cela nous aide à créer une nouvelle caractéristique afin que le modèle comprenne mieux la relation.

C'est la sortie souhaitée:

tableau3-1593014

Il existe plusieurs approches pour ce faire:

  1. Utilisation de Groupby suivi d'une fusion ()
  2. Approche de la fonction de transformation

Je vais implémenter les deux dans cet article.

Méthode 1: utilisation de Groupby suivi de merge ():

La première approche consiste à utiliser par groupe pour ajouter les données, puis fusionnez ces données dans le bloc de données d'origine à l'aide de la fonction de fusion (). Nous allons le faire!

Paso 1: importer les bibliothèques et lire le jeu de données

Paso 2: utiliser groupby pour calculer l'agrégat

Voici une représentation picturale de la façon dont par groupe rassemble la moyenne de chaque utilisateur:

transfrom-1929087

Paso 3: en utilisant la fonction de fusion () recombiner

Maintenant la partie difficile. Comment combinons-nous ces données avec le bloc de données d'origine? Nous utiliserons la fonction de fusion () Pour cette tâche. Vous pouvez en savoir plus sur les jointures et les fusions en Python à l'aide de Pandas ici et ici, respectivement.

Notre bloc de données d'origine ressemble à ceci:

tableau3-1593014

Cela fait certainement notre travail. Mais c'est un processus en plusieurs étapes et nécessite du code supplémentaire pour obtenir les données sous la forme dont nous avons besoin. Ce processus en plusieurs étapes peut consommer des ressources sur hackaton où le temps est une contrainte majeure.

Nous pouvons résoudre ce problème efficacement en utilisant la fonction de transformation dans Pandas.

Se concentrer 2: en utilisant la fonction de transformation python

C'est une fonction importante pour créer des fonctions. crème, Ça peut changer les règles du jeu!

La fonction de transformation conserve le même nombre d'éléments que l'ensemble de données d'origine après avoir effectué la transformation. Nous allons nous appuyer sur une étape de ligne super facile en utilisant groupby suivi d'une transformation:

La représentation picturale est la suivante:

transfrom2-4962408

Cela ne pourrait pas être plus facile, vérité? Le bloc de données d'origine ressemble au précédent de la dernière étape.

Le temps nécessaire à la fonction de transformation pour effectuer l'opération ci-dessus est comparativement inférieur dans une grande trame de données. C'est un avantage significatif par rapport à la première approche que nous avons utilisée..

Permettez-moi de démontrer la fonction Transform en utilisant Pandas en Python.

Supposons que nous créons un ensemble de données aléatoires de 1,000,000 de rangées et 3 Colonnes. Maintenant, nous calculons la moyenne d'une colonne basée sur groupby (similaire à la moyenne de tous les achats basés sur groupby user_id).

Paso 1: importer les bibliothèques

Paso 2: créer le bloc de données

Paso 3: utiliser la procédure de fusion

Production:
heure1-5823220

Paso 4: utiliser la fonction de transformation

Production:
temps2-9904693

Cela montre clairement que la fonction de transformation est beaucoup plus rapide que l'approche précédente. Bien fait!

3. Différence entre les fonctions Apply et Transform en Python

À présent, disons que nous voulons créer une nouvelle colonne basée sur les valeurs d'une autre colonne. C'est le bloc de données avec lequel nous travaillons:

tableau4-1392985

Avec la fonction Appliquer:

Voici à quoi ressemble la sortie en utilisant la fonction Appliquer:

tbal6-6467099

La fonction d'application envoie une copie complète du bloc de données au travail afin que nous puissions manipuler toutes les lignes ou colonnes simultanément.

Avec la fonction Transformer:

Cette fonctionnalité n'est pas possible dans la fonction Transformer. Cela ne manipule qu'une seule ligne ou colonne en fonction de la valeur de l'axe et ne manipule pas un bloc de données entier. Donc, nous pouvons utiliser la fonction Appliquer ou Transformer selon les besoins.

Remarques finales

La fonction Transformer est très utile lorsque je cherche à manipuler rapidement des lignes ou des colonnes. Comme je l'ai mentionné précédemment, ceci est particulièrement utile dans les hackathons lorsque le temps presse.

Si vous rencontrez plus de fonctionnalités Pandas, Commentez et je serai heureux d'apprendre et de partager!

Commencez à participer à des concours pour montrer vos compétences. C'est un excellent point de départ: Projet de vente du Black Friday.

Vous pouvez vous inscrire au Plateforme DataHack Et participez à des compétitions sympas et affrontez les meilleurs experts en science des données !!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.