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 pd
Attributs :
Paramètre Type Description Valeur par défaut df.apply(fonction, axis=1)
function Applique la fonction à chaque ligne (l'argument axis=1
spécifie l'opération sur les lignes).None
lambda row: ...
lambda function La fonction (ici une fonction lambda) qui prend chaque ligne comme entrée et effectue une transformation. None
row['colonne']
Series Accès aux différentes colonnes de chaque ligne pour effectuer des calculs. None
Exemple 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 pd
importe 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é
data
est 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 objetDataFrame
nommé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=1
indique que l’on applique la fonction ligne par ligne (et non colonne par colonne).La fonction
lambda
prend chaque lignerow
et 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 DataFramedf
avec la nouvelle colonne'valeur_totale'
calculée pour chaque ligne.