Omgaan met Ontbrekende Waarden
Slechts een beperkt aantal machine learning-modellen kan omgaan met ontbrekende waarden, daarom moet de dataset worden gecontroleerd om te verzekeren dat er geen hiaten zijn. Indien 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
Voor het weergeven van algemene informatie over de dataset en het controleren op ontbrekende waarden, kan de .info()-methode van een DataFrame worden gebruikt.
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-nulwaarden, wat wijst op ontbrekende gegevens.
Null is een andere benaming voor ontbrekende waarden.
Om het aantal ontbrekende waarden per kolom te identificeren, gebruik 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 oplevert 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 gangbare 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.
Awesome!
Completion rate improved to 3.13
Omgaan met Ontbrekende Waarden
Veeg om het menu te tonen
Slechts een beperkt aantal machine learning-modellen kan omgaan met ontbrekende waarden, daarom moet de dataset worden gecontroleerd om te verzekeren dat er geen hiaten zijn. Indien 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
Voor het weergeven van algemene informatie over de dataset en het controleren op ontbrekende waarden, kan de .info()-methode van een DataFrame worden gebruikt.
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-nulwaarden, wat wijst op ontbrekende gegevens.
Null is een andere benaming voor ontbrekende waarden.
Om het aantal ontbrekende waarden per kolom te identificeren, gebruik 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 oplevert 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 gangbare methode is het gebruik van de SimpleImputer-transformer, die in het volgende hoofdstuk wordt behandeld.
Bedankt voor je feedback!