Lambda-funktioihin Tutustuminen
Pyyhkäise näyttääksesi valikon
lambda-funktio on pieni, anonyymi funktio, joka määritellään lambda-avainsanalla. Toisin kuin tavalliset funktiot, jotka määritellään def-avainsanalla, lambda-funktiolla ei ole nimeä ja se on tarkoitettu lyhyisiin, kertaluonteisiin loogisiin operaatioihin.
Syntaksi on:
lambda arguments: expression
Funktio ottaa arguments ja palauttaa expression-lausekkeen tuloksen. Muutamia yksinkertaisia esimerkkejä:
12345double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
lambda-funktion käyttäminen iloc[]:n kanssa
Pandas-kirjastossa iloc[] hyväksyy normaalisti kokonaislukupohjaiset sijainnit. Voit kuitenkin myös välittää lambda-funktion – tässä tapauksessa x viittaa DataFrameen itseensä ja x.index palauttaa rivien indeksiarvot:
data.iloc[lambda x: x.index < 5]
Tämä palauttaa viisi ensimmäistä riviä (indeksit 0–4). Tässä on, mitä kukin osa tekee:
lambda x: määrittelee anonyymin funktion, jossaxon DataFrame;x.index: hakee rivien indeksiarvot;x.index < 5: suodatusehto; valitaan vain rivit, joiden indeksi on alle5.
Tuloksena on totuusarvojen taulukko, jota iloc[] käyttää rivien suodattamiseen.
Suodatus indeksin parillisuuden perusteella
Yleinen käyttötapaus on jakaa aineisto parillisiin ja parittomiin indekseihin. Jakojäännösoperaattori % palauttaa jakolaskun jäännöksen:
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 on True, kun indeksi on jaollinen luvulla 2 (parillinen), ja False muulloin.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme