Omgaan met Ontbrekende Waarden
Veeg om het menu te tonen
Slechts een beperkt aantal machine learning-modellen kan omgaan met ontbrekende waarden, dus het is noodzakelijk om de dataset te controleren om te verzekeren dat er geen hiaten zijn. Als er ontbrekende waarden aanwezig zijn, kunnen deze op twee manieren worden aangepakt:
- Verwijderen van rijen die ontbrekende waarden bevatten;
- Opvullen van lege cellen met vervangende waarden, een proces dat imputatie wordt genoemd.
Ontbrekende waarden identificeren
Om algemene informatie over de dataset weer te geven en te controleren op ontbrekende waarden, kun je de .info()-methode van een DataFrame gebruiken.
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())
De dataset bevat 344 rijen, maar de kolommen 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' en 'sex' bevatten elk minder dan 344 niet-lege waarden, wat wijst op ontbrekende gegevens.
Null is een andere benaming voor ontbrekende waarden.
Om het aantal ontbrekende waarden per kolom te identificeren, gebruik je de .isna()-methode en vervolgens .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())
Rijen met ontbrekende waarden kunnen worden weergegeven met:
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)])
Rijen verwijderen
De eerste en laatste rijen bevatten alleen de target ('species') en 'island' waarden, wat te weinig informatie biedt om nuttig te zijn. Deze rijen kunnen worden verwijderd door alleen die rijen te behouden met minder dan twee NaN-waarden en deze opnieuw toe te wijzen aan 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))
Daarentegen bevatten de overgebleven rijen bruikbare informatie, waarbij NaN-waarden alleen voorkomen in de kolom 'sex'. In plaats van deze rijen te verwijderen, kunnen de ontbrekende waarden worden geïmpteerd. Een veelgebruikte methode is het gebruik van de SimpleImputer transformer, die in het volgende hoofdstuk wordt behandeld.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.