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.
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
- Quelle est la fonction de transformation en Python?
- Pourquoi la fonction de transformation est-elle importante?
- 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:
C'est le cadre de données que nous obtenons après l'application de la fonction de transformation de Python:
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:
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:
Il existe plusieurs approches pour ce faire:
- Utilisation de Groupby suivi d'une fusion ()
- 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:
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:
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:
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
Paso 4: utiliser la fonction de transformation
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:
Avec la fonction Appliquer:
Voici à quoi ressemble la sortie en utilisant la fonction Appliquer:
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 !!
En rapport
Articles Similaires:
- Tableau croisé dynamique Pandas | Créer un tableau croisé dynamique à l'aide de pandas en Python
- Style de cadre de données Pandas à l'aide de Pandas.Styler
- Pandas loc contre iloc | loc vs iloc dans les pandas pour sélectionner les données
- Délimiteurs dans Pandas read_csv | Comprendre les délimiteurs chez les pandas