Lære om lambda-funktioner
Stryg for at vise menuen
En lambda-funktion er en lille, anonym funktion defineret med nøgleordet lambda. I modsætning til almindelige funktioner defineret med def, har en lambda-funktion intet navn og er beregnet til kort, engangsbrug logik.
Syntaksen er:
lambda arguments: expression
Funktionen tager arguments og returnerer resultatet af expression. Et par enkle eksempler:
12345double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
Brug af lambda med iloc[]
I pandas accepterer iloc[] normalt positioner baseret på heltal. Du kan dog også videregive en lambda-funktion – i dette tilfælde refererer x til selve DataFrame, og x.index giver dig rækkeindeks-værdierne:
data.iloc[lambda x: x.index < 5]
Dette returnerer de første fem rækker (indeks 0 til og med 4). Her er, hvad hver del gør:
lambda x: definerer en anonym funktion, hvorxer DataFrame;x.index: tilgår rækkeindeks-værdierne;x.index < 5: filtreringsbetingelsen; kun rækker, hvis indeks er mindre end5, vælges.
Resultatet er et boolesk array, som iloc[] bruger til at filtrere rækker.
Filtrering efter indeks-paritet
Et almindeligt anvendelsestilfælde er opdeling af et datasæt efter lige og ulige indekser. Modulo-operatoren % returnerer resten af divisionen:
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 er True, når indekset er deleligt med 2 (lige), og False ellers.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat