Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Apprendimento delle funzioni lambda | Familiarizzarsi con l'Indicizzazione e la Selezione dei Dati
Data Wrangling con Pandas

bookApprendimento delle funzioni lambda

Scorri per mostrare il menu

Note
Definizione

Una funzione lambda è una piccola funzione anonima definita con la parola chiave lambda. A differenza delle funzioni regolari definite con def, una funzione lambda non ha nome ed è pensata per logiche brevi e di utilizzo singolo.

La sintassi è:

lambda arguments: expression

La funzione accetta gli arguments e restituisce il risultato dell'expression. Alcuni semplici esempi:

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

Utilizzo di lambda con iloc[]

In pandas, iloc[] normalmente accetta posizioni basate su interi. Tuttavia, è anche possibile passare una funzione lambda – in questo caso, x si riferisce al DataFrame stesso e x.index restituisce i valori degli indici delle righe:

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

Questo restituisce le prime cinque righe (indici da 0 a 4). Ecco cosa fa ciascuna parte:

  • lambda x: definisce una funzione anonima dove x è il DataFrame;
  • x.index: accede ai valori degli indici delle righe;
  • x.index < 5: condizione di filtraggio; vengono selezionate solo le righe il cui indice è inferiore a 5.

Il risultato è un array booleano che iloc[] utilizza per filtrare le righe.

Filtraggio per parità dell'indice

Un caso d'uso comune è la suddivisione di un dataset in base a indici pari e dispari. L'operatore modulo % restituisce il resto della divisione:

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 è True quando l'indice è divisibile per 2 (pari), e False altrimenti.

question mark

A cosa si riferisce x nel seguente codice?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 1. Capitolo 5
some-alt