Appliquer une fonction
Appliquer une fonction à un jeu de données est une opération courante en analyse de données qui permet de transformer, nettoyer ou enrichir les informations présentes. Cela consiste à exécuter une fonction définie — qu’elle soit prédéfinie ou personnalisée — sur chaque élément ou groupe d’éléments d’un ensemble de données.
Cette méthode est essentielle pour effectuer des calculs, des transformations conditionnelles, ou des extractions spécifiques, sans avoir à manipuler manuellement chaque valeur. Par exemple, on peut appliquer une fonction pour convertir des unités, nettoyer des chaînes de caractères, ou créer de nouvelles colonnes dérivées à partir de colonnes existantes.
En Python, avec la bibliothèque pandas
, la méthode .apply()
est très utilisée pour appliquer des fonctions à des séries ou DataFrames de manière flexible et performante.
Dans cette page, vous apprendrez comment définir et appliquer des fonctions simples ou complexes à vos données, comment gérer les fonctions anonymes (lambda), et comment optimiser ces opérations pour un traitement efficace.
Fonctions :
-
apply()
La méthode apply() permet d'appliquer une fonction sur chaque élément d'une colonne ou d'une ligne d'un DataFrame. C'est un moyen très puissant pour transformer les données de manière flexible. Avec apply(), il est possible d'utiliser une fonction personnalisée pour effectuer des calculs ou des transformations complexes.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut df['colonne']
Series La colonne du DataFrame sur laquelle la fonction sera appliquée. None
apply(fonction)
function La fonction que vous souhaitez appliquer à chaque élément de la colonne. La fonction peut être une fonction prédéfinie ou une fonction lambda. None
Exemple de code :
import pandas as pd # Exemple de DataFrame data = { 'produit': ['A', 'B', 'C', 'D'], 'prix': [10, 20, 30, 40] } df = pd.DataFrame(data) # Appliquer une fonction qui ajoute 5 au prix de chaque produit df['prix_plus_cinq'] = df['prix'].apply(lambda x: x + 5) # Appliquer une fonction qui transforme les prix en pourcentage (par rapport à un total de 100) df['prix_pourcentage'] = df['prix'].apply(lambda x: (x / 100) * 100) print(df)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour simplifier son utilisation dans le code.Exemple de DataFrame
Le dictionnairedata
contient deux clés :'produit'
et'prix'
, associées à des listes de valeurs. Ce dictionnaire est utilisé pour créer un DataFramedf
, où chaque ligne représente un produit avec son prix.Appliquer une fonction qui ajoute 5 au prix de chaque produit
La méthodeapply()
est utilisée ici pour appliquer une fonction à chaque élément de la colonne'prix'
. La fonction lambdalambda x: x + 5
ajoute 5 au prix de chaque produit. Le résultat est stocké dans une nouvelle colonne'prix_plus_cinq'
.Appliquer une fonction qui transforme les prix en pourcentage (par rapport à un total de 100)
Une autre fonctionapply()
est utilisée pour calculer les prix en pourcentage par rapport à 100. La fonction lambdalambda x: (x / 100) * 100
transforme chaque prix en pourcentage, bien que ce calcul soit équivalent à garder les prix inchangés ici. Le résultat est assigné à la colonne'prix_pourcentage'
. Enfin,print(df)
affiche le DataFramedf
avec les deux nouvelles colonnes'prix_plus_cinq'
et'prix_pourcentage'
, montrant les résultats des transformations appliquées sur les prix.