Wenden Sie die Lambda-Funktion auf Pandas DataFrame an

Samreena Aslam 30 Januar 2023
  1. Lambda-Funktion
  2. Anwenden der Lambda-Funktion auf eine einzelne Spalte mit der Methode DataFrame.assign()
  3. Anwenden der Lambda-Funktion auf mehrere Spalten mit der Methode DataFrame.assign()
  4. Anwenden der Lambda-Funktion auf eine einzelne Zeile mit der Methode DataFrame.apply()
  5. Filtern von Daten durch Anwenden der Lambda-Funktion
  6. Verwendung von die Funktion map() durch Anwenden der Lambda-Funktion
  7. Verwendung von die if-else-Anweisung durch Anwenden der Lambda-Funktion
  8. Fazit
Wenden Sie die Lambda-Funktion auf Pandas DataFrame an

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