Appliquer apply() sur plusieurs colonnes
La méthode apply() peut être utilisée sur plusieurs colonnes d’un DataFrame en spécifiant axis=1, ce qui permet d’appliquer une fonction à chaque ligne du DataFrame (au lieu de chaque colonne, comme c’est le cas avec axis=0). Cette approche est utile lorsque l’on souhaite effectuer des transformations qui dépendent de plusieurs colonnes simultanément.
Fonctions :
-
df.apply(lambda row: …, axis=1)
La méthode apply() permet également d'appliquer une fonction sur plusieurs colonnes d'un DataFrame. En utilisant l'argument axis=1, vous indiquez à pandas que la fonction doit être appliquée sur chaque ligne (et non sur chaque colonne comme par défaut). Cela vous permet d'accéder à plusieurs colonnes en même temps dans une ligne et d'effectuer des transformations complexes.
Importation :
import pandas as pdAttributs :
Paramètre Type Description Valeur par défaut df.apply(fonction, axis=1)function Applique la fonction à chaque ligne (l'argument axis=1spécifie l'opération sur les lignes).Nonelambda row: ...lambda function La fonction (ici une fonction lambda) qui prend chaque ligne comme entrée et effectue une transformation. Nonerow['colonne']Series Accès aux différentes colonnes de chaque ligne pour effectuer des calculs. NoneExemple de code :
import pandas as pd # Exemple de DataFrame data = { 'produit': ['A', 'B', 'C', 'D'], 'prix': [10, 20, 30, 40], 'quantité': [1, 2, 3, 4] } df = pd.DataFrame(data) # Appliquer une fonction pour calculer la valeur totale (prix * quantité) pour chaque produit df['valeur_totale'] = df.apply(lambda row: row['prix'] * row['quantité'], axis=1) print(df)
Explication du code :
import pandas as pdimporte la bibliothèque pandas, renommée ici enpd, couramment utilisée pour la manipulation et l’analyse de données.Création d’un DataFrame
Un dictionnaire nommé
dataest défini avec trois clés :'produit','prix'et'quantité', chacune associée à une liste de valeurs.df = pd.DataFrame(data)transforme ce dictionnaire en un objetDataFramenommédf. Chaque clé devient une colonne, et les valeurs associées forment les lignes.Calcul de la valeur totale par produit
La méthode
apply()est utilisée pour appliquer une fonction à chaque ligne du DataFrame. Le paramètreaxis=1indique que l’on applique la fonction ligne par ligne (et non colonne par colonne).La fonction
lambdaprend chaque lignerowet calcule le produit de la colonne'prix'par la colonne'quantité'.df['valeur_totale'] = df.apply(lambda row: row['prix'] * row['quantité'], axis=1)ajoute une nouvelle colonne'valeur_totale'contenant le résultat de ce calcul pour chaque produit.Affichage du DataFrame
print(df)affiche le contenu du DataFramedfavec la nouvelle colonne'valeur_totale'calculée pour chaque ligne.