Appliquer une fonction

Appliquer une fonction à un jeu de données est une opération courante en analyse de données qui permet de transformer, nettoyer ou enrichir les informations présentes. Cela consiste à exécuter une fonction définie — qu’elle soit prédéfinie ou personnalisée — sur chaque élément ou groupe d’éléments d’un ensemble de données.

Cette méthode est essentielle pour effectuer des calculs, des transformations conditionnelles, ou des extractions spécifiques, sans avoir à manipuler manuellement chaque valeur. Par exemple, on peut appliquer une fonction pour convertir des unités, nettoyer des chaînes de caractères, ou créer de nouvelles colonnes dérivées à partir de colonnes existantes.

En Python, avec la bibliothèque pandas, la méthode .apply() est très utilisée pour appliquer des fonctions à des séries ou DataFrames de manière flexible et performante.

Dans cette page, vous apprendrez comment définir et appliquer des fonctions simples ou complexes à vos données, comment gérer les fonctions anonymes (lambda), et comment optimiser ces opérations pour un traitement efficace.

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.