Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Lambda-funktioihin Tutustuminen | Indeksoinnin ja Tietojen Valinnan Perusteet
Datan Käsittely Pandasilla

bookLambda-funktioihin Tutustuminen

Pyyhkäise näyttääksesi valikon

Note
Määritelmä

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ä:

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

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 04). Tässä on, mitä kukin osa tekee:

  • lambda x: määrittelee anonyymin funktion, jossa x on DataFrame;
  • x.index: hakee rivien indeksiarvot;
  • x.index < 5: suodatusehto; valitaan vain rivit, joiden indeksi on alle 5.

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:

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 on True, kun indeksi on jaollinen luvulla 2 (parillinen), ja False muulloin.

question mark

Mihin x viittaa seuraavassa koodissa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 5
some-alt