Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Learning About Lambda-Funktionen | Getting Familiar With Indexing and Selecting Data
Data Wrangling mit Pandas

bookLearning About Lambda-Funktionen

Swipe um das Menü anzuzeigen

Note
Definition

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:

12345
double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
copy

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, wobei x das DataFrame ist;
  • x.index: greift auf die Zeilenindexwerte zu;
  • x.index < 5: die Filterbedingung; es werden nur Zeilen ausgewählt, deren Index kleiner als 5 ist.

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:

123456789101112
import 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())
copy

x.index % 2 == 0 ist True, wenn der Index durch 2 teilbar ist (gerade), und andernfalls False.

question mark

Worauf bezieht sich x im folgenden Code?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 1. Kapitel 5
some-alt