Kennismaken met Lambda-Functies
Veeg om het menu te tonen
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:
12345double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
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 waarbijxde DataFrame is;x.index: benadert de rij-indexwaarden;x.index < 5: de filtervoorwaarde; alleen rijen waarvan de index kleiner is dan5worden 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:
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 is True wanneer de index deelbaar is door 2 (even), en False anders.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.