Learning About Lambda-Funktionen
Swipe um das Menü anzuzeigen
Eine lambda-Funktion ist eine kleine, anonyme Funktion, die mit dem Schlüsselwort lambda definiert wird. Im Gegensatz zu regulären Funktionen, die mit def definiert werden, hat eine lambda-Funktion keinen Namen und ist für kurze, einmalige Logik vorgesehen.
Die Syntax lautet:
lambda arguments: expression
Die Funktion nimmt arguments entgegen und gibt das Ergebnis des expression zurück. Einige einfache Beispiele:
12345double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
Verwendung von lambda mit iloc[]
In pandas akzeptiert iloc[] normalerweise positionsbasierte Ganzzahlen. Es ist jedoch auch möglich, eine lambda-Funktion zu übergeben – in diesem Fall bezieht sich x auf das DataFrame selbst, und x.index liefert die Zeilenindexwerte:
data.iloc[lambda x: x.index < 5]
Dies gibt die ersten fünf Zeilen zurück (Indizes 0 bis 4). Die einzelnen Bestandteile bedeuten:
lambda x: definiert eine anonyme Funktion, wobeixdas DataFrame ist;x.index: greift auf die Zeilenindexwerte zu;x.index < 5: die Filterbedingung; es werden nur Zeilen ausgewählt, deren Index kleiner als5ist.
Das Ergebnis ist ein boolesches Array, das von iloc[] zur Filterung der Zeilen verwendet wird.
Filtern nach Index-Parität
Ein häufiger Anwendungsfall ist das Aufteilen eines Datensatzes nach geraden und ungeraden Indizes. Der Modulo-Operator % gibt den Rest einer Division zurück:
123456789101112import pandas as pd # Data import data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/IMDb_Data_final.csv') # Rows with even indices (0, 2, 4, ...) even = data.iloc[lambda x: x.index % 2 == 0] print(even.head()) # Rows with odd indices (1, 3, 5, ...) odd = data.iloc[lambda x: x.index % 2 != 0] print(odd.head())
x.index % 2 == 0 ist True, wenn der Index durch 2 teilbar ist (gerade), und andernfalls False.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen