Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Kennismaken met Lambda-Functies | Kennismaken met Indexering en het Selecteren van Data
Data Wrangling met Pandas

bookKennismaken met Lambda-Functies

Veeg om het menu te tonen

Note
Definitie

Een lambda-functie is een kleine, anonieme functie gedefinieerd met het sleutelwoord lambda. In tegenstelling tot reguliere functies die met def worden gedefinieerd, heeft een lambda-functie geen naam en is bedoeld voor korte, eenmalige logica.

De syntaxis is:

lambda arguments: expression

De functie neemt arguments en retourneert het resultaat van expression. Enkele eenvoudige voorbeelden:

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

Gebruik van lambda met iloc[]

In pandas accepteert iloc[] normaal gesproken posities op basis van gehele getallen. Je kunt echter ook een lambda-functie doorgeven – in dit geval verwijst x naar de DataFrame zelf, en geeft x.index de rij-indexwaarden:

data.iloc[lambda x: x.index < 5]

Dit retourneert de eerste vijf rijen (indices 0 tot en met 4). Hier volgt een uitleg van elk onderdeel:

  • lambda x: definieert een anonieme functie waarbij x de DataFrame is;
  • x.index: benadert de rij-indexwaarden;
  • x.index < 5: de filtervoorwaarde; alleen rijen waarvan de index kleiner is dan 5 worden geselecteerd.

Het resultaat is een booleaanse array die door iloc[] wordt gebruikt om rijen te filteren.

Filteren op indexpariteit

Een veelvoorkomend gebruik is het splitsen van een dataset op basis van even en oneven indices. De modulo-operator % geeft de rest van een deling terug:

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 is True wanneer de index deelbaar is door 2 (even), en False anders.

question mark

Waar verwijst x naar in de volgende code?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 5
some-alt