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 :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour simplifier son utilisation dans le code.Exemple de DataFrame
Le dictionnaire
data
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éthode
apply()
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 fonction
apply()
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.