Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Filtraggio e Selezione dei Dati con Python | Lavorare con i Dati
Fondamenti di Databricks: Guida per Principianti

Filtraggio e Selezione dei Dati con Python

Scorri per mostrare il menu

Note
Definizione

La selezione e il filtraggio sono le operazioni più comuni nella manipolazione dei dati. Selezionare consente di scegliere colonne specifiche di interesse, mentre Filtrare permette di restringere le righe in base a criteri o condizioni specifiche.

Nella maggior parte degli scenari reali, non è necessario lavorare con ogni singola colonna o riga di un dataset. Le tabelle di grandi dimensioni possono avere centinaia di colonne e milioni di righe, molte delle quali potrebbero essere irrilevanti per l'analisi specifica. In questo capitolo, verrà illustrato come "estrarre" esattamente i dati necessari utilizzando i metodi select() e filter().

Selezione di colonne specifiche

Il metodo select() consente di creare un nuovo DataFrame che contiene solo le colonne scelte. Questo riduce la quantità di memoria utilizzata dal cluster e rende i risultati molto più leggibili.

# Select only two specific columns
selected_df = df.select("carat", "price")

display(selected_df)

Nota che Spark non modifica il df originale. Invece, crea un nuovo DataFrame chiamato selected_df. Se si desidera selezionare tutte le colonne tranne una, o eseguire un calcolo durante la selezione, è necessario utilizzare una sintassi più avanzata, ma per le operazioni di base, passare i nomi delle colonne come stringhe è l'approccio standard.

Filtraggio delle righe con condizioni

Il metodo filter() (o il suo alias where()) funziona come un setaccio per i dati. Si fornisce una condizione e Spark mantiene solo le righe in cui tale condizione è vera.

# Filter for rows where the carat is '0.23'
filtered_df = df.filter(df.carat == 0.23)

display(filtered_df)

È possibile utilizzare operatori di confronto standard come == (uguale), != (diverso), > (maggiore di) e < (minore di).

Combinazione di più filtri

Spesso è necessario applicare più di una regola contemporaneamente. Per farlo, è possibile concatenare i filtri o utilizzare operatori logici come "And" (&) e "Or" (|).

good_carat_df = df.filter((df.carat == 0.23) & (df.cut == "Good"))

display(good_carat_df)
Note
Nota

Quando si combinano i filtri con & o |, racchiudere sempre ogni singola condizione tra parentesi. Questo garantisce che Spark valuti correttamente la logica.

Selezione e filtraggio in un unico passaggio

Poiché Spark utilizza un'API "fluent", è possibile concatenare questi comandi in una sola riga di codice. Questo è uno schema molto comune nell'ingegneria dei dati professionale:

# Select specific diamonds by `price > 500`
high_profit_df = df.select("carat", "price").filter(df.price > 500)

display(high_profit_df)

Verifica del lavoro svolto

Dopo ogni selezione o filtro, è buona pratica eseguire un count(). Se si parte da 10.000 righe e dopo un filtro si ottiene 0, è possibile che la condizione del filtro sia troppo restrittiva o che ci sia un errore nei valori delle stringhe.

1. Quale metodo utilizzeresti se vuoi selezionare solo 3 colonne da una tabella con 50 colonne?

2. In Python, qual è il modo corretto per filtrare le righe in cui "Total_Profit" è maggiore di 1000?

question mark

Quale metodo utilizzeresti se vuoi selezionare solo 3 colonne da una tabella con 50 colonne?

Seleziona la risposta corretta

question mark

In Python, qual è il modo corretto per filtrare le righe in cui "Total_Profit" è maggiore di 1000?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 4

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 4. Capitolo 4
some-alt