Appliquer la fonction Lambda à Pandas DataFrame
- Fonction lambda
-
Application de la fonction Lambda sur une seule colonne à l’aide de la méthode
DataFrame.assign()
-
Application de la fonction Lambda sur plusieurs colonnes à l’aide de la méthode
DataFrame.assign()
-
Application de la fonction Lambda sur une seule ligne à l’aide de la méthode
DataFrame.apply()
- Filtrage des données en appliquant la fonction Lambda
-
Utiliser la fonction
map()
en appliquant la fonction Lambda -
Utiliser l’instruction
if-else
en appliquant la fonction Lambda - Conclusion
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
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme