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

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, renommée ici en pd 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 DataFrame df, 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 lambda lambda 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 lambda lambda 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 DataFrame df avec les deux nouvelles colonnes 'prix_plus_cinq' et 'prix_pourcentage', montrant les résultats des transformations appliquées sur les prix.