Appliquer la fonction Lambda à Pandas DataFrame

Samreena Aslam 8 octobre 2023
  1. Fonction lambda
  2. Application de la fonction Lambda sur une seule colonne à l’aide de la méthode DataFrame.assign()
  3. Application de la fonction Lambda sur plusieurs colonnes à l’aide de la méthode DataFrame.assign()
  4. Application de la fonction Lambda sur une seule ligne à l’aide de la méthode DataFrame.apply()
  5. Filtrage des données en appliquant la fonction Lambda
  6. Utiliser la fonction map() en appliquant la fonction Lambda
  7. Utiliser l’instruction if-else en appliquant la fonction Lambda
  8. Conclusion
Appliquer la fonction Lambda à Pandas DataFrame

La fonction lambda résout divers problèmes de science des données dans Pandas python. Nous pouvons appliquer la fonction lambda sur les lignes et les colonnes dans la DataFrame pandas.

Nous allons explorer dans cet article comment appliquer les fonctions lambda aux pandas DataFrame.

Il existe plusieurs applications de la fonction lambda sur les pandas DataFrame telles que filter(), map() et instructions conditionnelles que nous allons expliquer à l’aide de quelques exemples dans cet article.

Fonction lambda

La fonction Lambda contient une seule expression.

La fonction Lambda est une petite fonction qui peut également être utilisée comme fonction anonyme, c’est-à-dire qu’elle ne nécessite aucun nom. La fonction lambda est utile pour résoudre de petits problèmes avec moins de code.

La syntaxe suivante est utilisée pour appliquer une fonction lambda sur pandas DataFrame :

dataframe.apply(lambda x: x + 2)

Application de la fonction Lambda sur une seule colonne à l’aide de la méthode DataFrame.assign()

La méthode dataframe.assign() applique la fonction Lambda sur une seule colonne. Prenons un exemple.

Dans l’exemple suivant, nous avons appliqué une fonction lambda sur la colonne Notes des étudiants. Après application de la fonction Lambda, les pourcentages des étudiants sont calculés et stockés dans une nouvelle colonne Pourcentage.

Voir l’implémentation suivante pour appliquer une fonction lambda sur une seule colonne dans Pandas DataFrame.

Exemple de code :

import pandas as pd

# initialization of list
students_record = [
    ["Samreena", 900],
    ["Mehwish", 750],
    ["Asif", 895],
    ["Mirha", 800],
    ["Affan", 850],
    ["Raees", 950],
]

# pandas dataframe creation
dataframe = pd.DataFrame(students_record, columns=["Student Names", "Student Marks"])

# using Lambda function
dataframe1 = dataframe.assign(Percentage=lambda x: (x["Student Marks"] / 1000 * 100))

# display dataframe
print(dataframe1)

Production :

	Student Names	Student Marks	Percentage
0	Samreena	             900	90.0
1	Mehwish	                 750	75.0
2	Asif	                 895	89.5
3	Mirha	                 800	80.0
4	Affan	                 850	85.0
5	Raees	                 950	95.0

Application de la fonction Lambda sur plusieurs colonnes à l’aide de la méthode DataFrame.assign()

On peut aussi appliquer la fonction Lambda sur plusieurs colonnes en utilisant la méthode dataframe.assign() dans Pandas DataFrame.

Par exemple, nous avons quatre colonnes Noms des étudiants, Informatique, Mathématiques et Physique. Nous avons appliqué une fonction Lambda sur plusieurs colonnes de sujets telles que Computer, Math et Physics pour calculer les notes obtenues stockées dans la colonne Marks_Obtained.

Implémentez l’exemple suivant.

Exemple de code :

import pandas as pd

# nested list initialization
values_list = [
    ["Samreena", 85, 75, 100],
    ["Mehwish", 90, 75, 90],
    ["Asif", 95, 82, 80],
    ["Mirha", 75, 88, 68],
    ["Affan", 80, 63, 70],
    ["Raees", 91, 64, 90],
]

# pandas dataframe creation
df = pd.DataFrame(values_list, columns=["Student Names", "Computer", "Math", "Physics"])

# applying Lambda function

dataframe = df.assign(
    Marks_Obtained=lambda x: (x["Computer"] + x["Math"] + x["Physics"])
)

# display dataframe
print(dataframe)

Production :

Student Names	Computer	Math	Physics	 Marks_Obtained
0	Samreena	85	        75	      100	 260
1	Mehwish	    90	        75	       90	 255
2	Asif	    95	        82	       80	 257
3	Mirha	    75	        88	       68	 231
4	Affan	    80	        63	       70	 213
5	Raees	    91	        64	       90	 245  

Application de la fonction Lambda sur une seule ligne à l’aide de la méthode DataFrame.apply()

La méthode dataframe.apply() applique la fonction Lambda sur une seule ligne.

Par exemple, nous avons appliqué la fonction lambda sur une seule ligne axis=1. En utilisant la fonction lambda, nous avons incrémenté le Revenu mensuel de chaque personne de 1000.

Exemple de code :

import pandas as pd

df = pd.DataFrame(
    {
        "ID": [1, 2, 3, 4, 5],
        "Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
        "Age": [20, 25, 15, 10, 30],
        "Monthly Income": [4000, 6000, 5000, 2000, 8000],
    }
)
df["Monthly Income"] = df.apply(lambda x: x["Monthly Income"] + 1000, axis=1)
print(df)

Production :

	ID	Names	    Age	 Monthly Income
0	1	Samreena	 20	 5000
1	2	Asif	     25	 7000
2	3	Mirha	     15	 6000
3	4	Affan	     10	 3000
4	5	Mahwish	     30	 9000

Filtrage des données en appliquant la fonction Lambda

Nous pouvons également filtrer les données souhaitées en appliquant la fonction Lambda.

La fonction filter() prend des séries pandas et une fonction lambda. La fonction Lambda s’applique à la série pandas qui renvoie les résultats spécifiques après avoir filtré la série donnée.

Dans l’exemple suivant, nous avons appliqué la fonction lambda sur la colonne Age et filtré l’âge des personnes de moins de 25 ans.

Exemple de code :

import pandas as pd

df = pd.DataFrame(
    {
        "ID": [1, 2, 3, 4, 5],
        "Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
        "Age": [20, 25, 15, 10, 30],
        "Monthly Income": [4000, 6000, 5000, 2000, 8000],
    }
)
print(list(filter(lambda x: x < 25, df["Age"])))

Production :

[20, 15, 10]

Utiliser la fonction map() en appliquant la fonction Lambda

On peut utiliser les fonctions map() et lambda.

La fonction lambda s’applique sur les séries pour mapper les séries en fonction de la correspondance d’entrée. Cette fonction est utile pour substituer ou remplacer une série par d’autres valeurs.

Lorsque nous utilisons la fonction map(), la taille d’entrée sera égale à la taille de sortie. Pour comprendre le concept de la fonction map(), consultez l’implémentation suivante du code source.

Exemple de code :

import pandas as pd

df = pd.DataFrame(
    {
        "ID": [1, 2, 3, 4, 5],
        "Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
        "Age": [20, 25, 15, 10, 30],
        "Monthly Income": [4000, 6000, 5000, 2000, 8000],
    }
)
df["Monthly Income"] = list(map(lambda x: int(x + x * 0.5), df["Monthly Income"]))
print(df)

Production :

    ID	  Names	    Age	 Monthly Income
0	1	Samreena	20	6000
1	2	Asif	    25	9000
2	3	Mirha	    15	7500
3	4	Affan	    10	3000
4	5	Mahwish	    30	12000

Utiliser l’instruction if-else en appliquant la fonction Lambda

On peut aussi appliquer les instructions conditionnelles sur les pandas dataframes en utilisant la fonction lambda.

Nous avons utilisé l’instruction conditionnelle à l’intérieur de la fonction lambda dans l’exemple suivant. Nous avons appliqué la condition sur la colonne Revenu mensuel.

Si le revenu mensuel est supérieur et égal à 5000, ajoutez Stable à l’intérieur de la colonne Catégorie ; sinon, ajoutez Instable.

Exemple de code :

import pandas as pd

df = pd.DataFrame(
    {
        "ID": [1, 2, 3, 4, 5],
        "Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
        "Age": [20, 25, 15, 10, 30],
        "Monthly Income": [4000, 6000, 5000, 2000, 8000],
    }
)
df["Category"] = df["Monthly Income"].apply(
    lambda x: "Stable" if x >= 5000 else "UnStable"
)
print(df)

Production :

    ID	 Names	    Age	 Monthly Income	 Category
0	1	Samreena	20	    4000	    UnStable
1	2	Asif	    25	    6000	    Stable
2	3	Mirha	    15	    5000	    Stable
3	4	Affan	    10	    2000	    UnStable
4	5	Mahwish	    30	    8000	    Stable

Conclusion

Nous avons implémenté différentes méthodes pour appliquer la fonction Lambda sur Pandas DataFrame. Nous avons vu comment appliquer la fonction lambda sur des lignes et des colonnes à l’aide des méthodes dataframe.assign() et dataframe.apply().

Nous avons démontré les différentes applications de la fonction lambda sur les séries pandas DataFrame, telles que la fonction filter(), la fonction map(), les instructions conditionnelles, etc.

Article connexe - Pandas DataFrame