Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Gestione dei Valori Mancanti | Preprocessing Dei Dati con Scikit-learn
Introduzione al ML con Scikit-Learn

bookGestione dei Valori Mancanti

Solo un numero limitato di modelli di machine learning può gestire valori mancanti, quindi è necessario verificare che il dataset non presenti lacune. Se sono presenti valori mancanti, possono essere gestiti in due modi:

  • Rimozione delle righe che contengono valori mancanti;
  • Riempimento delle celle vuote con valori sostitutivi, un processo noto come imputazione.

Identificazione dei valori mancanti

Per ottenere informazioni generali sul dataset e verificare la presenza di valori mancanti, è possibile utilizzare il metodo .info() di un DataFrame.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
copy

Il dataset contiene 344 voci, ma le colonne 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' e 'sex' presentano ciascuna meno di 344 valori non nulli, indicando la presenza di dati mancanti.

Note
Nota

Null è un altro termine per indicare i valori mancanti.

Per identificare il numero di valori mancanti in ciascuna colonna, applicare il metodo .isna() e poi utilizzare .sum().

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
copy

Le righe contenenti valori mancanti possono essere visualizzate con: df[df.isna().any(axis=1)]

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
copy

Rimozione delle righe

La prima e l'ultima riga contengono solo i valori del target ('species') e di 'island', fornendo informazioni troppo limitate per essere utili. Queste righe possono essere rimosse mantenendo solo quelle con meno di due valori NaN e riassegnandole a df.

123456
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
copy

Al contrario, le righe rimanenti contengono informazioni utili, con valori NaN presenti solo nella colonna 'sex'. Invece di rimuovere queste righe, i valori mancanti possono essere imputati. Un approccio comune consiste nell'utilizzare il trasformatore SimpleImputer, che verrà trattato nel prossimo capitolo.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookGestione dei Valori Mancanti

Scorri per mostrare il menu

Solo un numero limitato di modelli di machine learning può gestire valori mancanti, quindi è necessario verificare che il dataset non presenti lacune. Se sono presenti valori mancanti, possono essere gestiti in due modi:

  • Rimozione delle righe che contengono valori mancanti;
  • Riempimento delle celle vuote con valori sostitutivi, un processo noto come imputazione.

Identificazione dei valori mancanti

Per ottenere informazioni generali sul dataset e verificare la presenza di valori mancanti, è possibile utilizzare il metodo .info() di un DataFrame.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
copy

Il dataset contiene 344 voci, ma le colonne 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' e 'sex' presentano ciascuna meno di 344 valori non nulli, indicando la presenza di dati mancanti.

Note
Nota

Null è un altro termine per indicare i valori mancanti.

Per identificare il numero di valori mancanti in ciascuna colonna, applicare il metodo .isna() e poi utilizzare .sum().

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
copy

Le righe contenenti valori mancanti possono essere visualizzate con: df[df.isna().any(axis=1)]

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
copy

Rimozione delle righe

La prima e l'ultima riga contengono solo i valori del target ('species') e di 'island', fornendo informazioni troppo limitate per essere utili. Queste righe possono essere rimosse mantenendo solo quelle con meno di due valori NaN e riassegnandole a df.

123456
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
copy

Al contrario, le righe rimanenti contengono informazioni utili, con valori NaN presenti solo nella colonna 'sex'. Invece di rimuovere queste righe, i valori mancanti possono essere imputati. Un approccio comune consiste nell'utilizzare il trasformatore SimpleImputer, che verrà trattato nel prossimo capitolo.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3
some-alt