Wenden Sie die Lambda-Funktion auf Pandas DataFrame an
- Lambda-Funktion
-
Anwenden der Lambda-Funktion auf eine einzelne Spalte mit der Methode
DataFrame.assign()
-
Anwenden der Lambda-Funktion auf mehrere Spalten mit der Methode
DataFrame.assign()
-
Anwenden der Lambda-Funktion auf eine einzelne Zeile mit der Methode
DataFrame.apply()
- Filtern von Daten durch Anwenden der Lambda-Funktion
-
Verwendung von die Funktion
map()
durch Anwenden der Lambda-Funktion -
Verwendung von die
if-else
-Anweisung durch Anwenden der Lambda-Funktion - Fazit
Die lambda
-Funktion löst verschiedene Data-Science-Probleme in Pandas Python. Wir können die Lambda-Funktion sowohl auf Zeilen als auch auf Spalten im Datenrahmen
der Pandas anwenden.
Wir werden in diesem Artikel untersuchen, wie man die Lambda-Funktionen auf Pandas Datenrahmen
anwendet.
Es gibt mehrere Anwendungen der Lambda-Funktion auf Pandas DataFrame
wie filter()
, map()
und conditional statements
, die wir anhand einiger Beispiele in diesem Artikel erklären werden.
Lambda-Funktion
Die Lambda-Funktion enthält einen einzelnen Ausdruck.
Die Lambda
-Funktion ist eine kleine Funktion, die auch als anonyme Funktion verwendet werden kann, d.h. sie benötigt keinen Namen. Die Funktion Lambda
ist nützlich, um kleine Probleme mit weniger Code zu lösen.
Die folgende Syntax wird verwendet, um eine Lambda-Funktion auf Pandas DataFrame
anzuwenden:
dataframe.apply(lambda x: x + 2)
Anwenden der Lambda-Funktion auf eine einzelne Spalte mit der Methode DataFrame.assign()
Die Methode dataframe.assign()
wendet die Lambda-Funktion auf eine einzelne Spalte an. Nehmen wir ein Beispiel.
Im folgenden Beispiel haben wir eine Lambda-Funktion auf die Spalte Students Marks
angewendet. Nach Anwendung der Lambda-Funktion werden die Schülerprozentsätze berechnet und in einer neuen Spalte Prozentsatz
gespeichert.
Sehen Sie sich die folgende Implementierung an, um eine Lambda-Funktion auf eine einzelne Spalte in Pandas Datenrahmen
anzuwenden.
Beispielcode:
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)
Ausgabe:
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
Anwenden der Lambda-Funktion auf mehrere Spalten mit der Methode DataFrame.assign()
Wir können die Lambda-Funktion auch auf mehrere Spalten anwenden, indem wir die Methode dataframe.assign()
in Pandas DataFrame
verwenden.
Zum Beispiel haben wir vier Spalten Schülernamen
, Computer
, Mathe
und Physik
. Wir haben eine Lambda-Funktion auf mehrere Fächerspalten wie Computer
, Mathe
und Physik
angewendet, um die erhaltenen Noten zu berechnen, die in der Spalte Marks_Obtained
gespeichert sind.
Implementieren Sie das folgende Beispiel.
Beispielcode:
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)
Ausgabe:
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
Anwenden der Lambda-Funktion auf eine einzelne Zeile mit der Methode DataFrame.apply()
Die Methode dataframe.apply()
wendet die Lambda-Funktion auf eine einzelne Zeile an.
Zum Beispiel haben wir die Lambda-Funktion auf eine einzelne Zeile axis=1
angewendet. Mit der Lambda-Funktion haben wir das Monatliche Einkommen
jeder Person um 1000 erhöht.
Beispielcode:
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)
Ausgabe:
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
Filtern von Daten durch Anwenden der Lambda-Funktion
Wir können die gewünschten Daten auch filtern, indem wir die Lambda-Funktion anwenden.
Die Funktion filter()
nimmt Pandas-Reihen und eine Lambda-Funktion. Die Lambda-Funktion gilt für die Pandas-Serie, die die spezifischen Ergebnisse nach dem Filtern der angegebenen Serie zurückgibt.
Im folgenden Beispiel haben wir die Lambda-Funktion auf die Spalte Age
angewendet und das Alter von Personen unter 25 Jahren herausgefiltert.
Beispielcode:
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"])))
Ausgabe:
[20, 15, 10]
Verwendung von die Funktion map()
durch Anwenden der Lambda-Funktion
Wir können die Funktionen map()
und Lambda verwenden.
Die Lambda-Funktion wird auf Serien angewendet, um die Serien basierend auf der Eingabekorrespondenz abzubilden. Diese Funktion ist nützlich, um eine Reihe durch andere Werte zu ersetzen oder zu ersetzen.
Wenn wir die Funktion map()
verwenden, entspricht die Eingabegröße der Ausgabegröße. Um das Konzept der Funktion map()
zu verstehen, siehe die folgende Quellcode-Implementierung.
Beispielcode:
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)
Ausgabe:
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
Verwendung von die if-else
-Anweisung durch Anwenden der Lambda-Funktion
Wir können die bedingten Anweisungen auch auf Pandas Datenrahmen
anwenden, indem wir die Lambda-Funktion verwenden.
Im folgenden Beispiel haben wir die bedingte Anweisung innerhalb der Lambda-Funktion verwendet. Wir haben die Bedingung auf die Spalte Monatliches Einkommen
angewendet.
Wenn das monatliche Einkommen größer und gleich 5000 ist, fügen Sie Stabil
in der Spalte Kategorie
hinzu; andernfalls fügen Sie UnStable
hinzu.
Beispielcode:
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)
Ausgabe:
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
Fazit
Wir haben verschiedene Methoden implementiert, um die Lambda-Funktion auf Pandas Datenrahmen
anzuwenden. Wir haben gesehen, wie man die Lambda-Funktion mit den Methoden dataframe.assign()
und dataframe.apply()
auf Zeilen und Spalten anwendet.
Wir demonstrierten die verschiedenen Anwendungen der Lambda-Funktion auf Pandas DataFrame
-Serien, wie die filter()
-Funktion, die map()
-Funktion, bedingte Anweisungen und mehr.
Verwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum