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)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, renommée ici en pd, 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 objet DataFrame 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ètre axis=1 indique que l’on applique la fonction ligne par ligne (et non colonne par colonne).

    La fonction lambda prend chaque ligne row 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 DataFrame df avec la nouvelle colonne 'valeur_totale' calculée pour chaque ligne.