Appliquer une transformation avec apply() sur une colonne
La méthode apply() permet d’appliquer une fonction à chaque élément d’une colonne d’un DataFrame. Cela permet de réaliser des transformations complexes sur les données d’une colonne en passant une fonction personnalisée ou une fonction prédéfinie comme argument.
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 :
- DataFrame : Un DataFrame simple contenant des informations sur des produits et leurs prix.
- Première transformation (
prix_plus_cinq
) : Utilisation deapply()
pour ajouter 5 à chaque prix. La fonction lambda permet d'additionner 5 à chaque valeur de la colonne'prix'
. - Deuxième transformation (
prix_pourcentage
) : Transformation des valeurs de'prix'
en pourcentage (dans ce cas, le total est de 100, donc c'est une transformation simple pour l'exemple).
Remarque :
-
Fonctions personnalisées : Vous pouvez appliquer n'importe quelle fonction, qu'elle soit prédéfinie ou définie par l'utilisateur.
- Appliquer sur plusieurs colonnes : Vous pouvez aussi utiliser
apply()
sur plusieurs colonnes ou sur un DataFrame entier. - Vitesse d'exécution :
apply()
peut être plus lent que d'autres méthodes comme les opérations vectorisées (utilisant directement les opérateurs sur les colonnes), mais il est très flexible pour des transformations complexes.