Gestione dei Valori Mancanti
Solo un numero limitato di modelli di machine learning è in grado di gestire valori mancanti, quindi è necessario verificare che il dataset non presenti lacune. Se sono presenti valori mancanti, è possibile affrontarli in due modi:
- Rimozione delle righe che contengono valori mancanti;
- Compilazione 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.
12345import 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())
Il dataset contiene 344 record, 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.
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().
12345import 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())
Le righe contenenti valori mancanti possono essere visualizzate con:
df[df.isna().any(axis=1)]
12345import 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)])
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.
123456import 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))
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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 3.13
Gestione dei Valori Mancanti
Scorri per mostrare il menu
Solo un numero limitato di modelli di machine learning è in grado di gestire valori mancanti, quindi è necessario verificare che il dataset non presenti lacune. Se sono presenti valori mancanti, è possibile affrontarli in due modi:
- Rimozione delle righe che contengono valori mancanti;
- Compilazione 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.
12345import 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())
Il dataset contiene 344 record, 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.
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().
12345import 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())
Le righe contenenti valori mancanti possono essere visualizzate con:
df[df.isna().any(axis=1)]
12345import 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)])
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.
123456import 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))
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.
Grazie per i tuoi commenti!