Imputatie van NaN-waarden
Laten we wat waarden imputeren met de methode .transform(). In de vorige taak heb je een DataFrame fheroes gemaakt waarin alle groepen met een onvoldoende aantal bmi-waarnemingen zijn verwijderd. Onze kolom bmi bevat echter veel ontbrekende waarden (NaNs). Gegeven twee kopieën van het DataFrame fheroes (imp_globmean en imp_grpmean), is jouw taak om de NaNs in de kolom bmi te imputeren met respectievelijk de algemene gemiddelde waarde en met het gemiddelde per groep, gedefinieerd door de factoren Publisher en Alignment.
Tip: pandas Series en NumPy-arrays hebben een speciale methode .fillna() die alle aangetroffen NaNs vervangt door een waarde die je als argument meegeeft.
Deze oefening maakt deel uit van de cursus
Oefenen met coding-interviewvragen in Python
Oefeninstructies
- Definieer een lambda-functie die
NaN-waarden inseriesimputeert met het gemiddelde. - Imputeer de
NaNs in de kolombmivanimp_globmeanmet de algemene gemiddelde waarde. - Imputeer de
NaNs in de kolombmivanimp_grpmeanmet het gemiddelde per groep.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# Define a lambda function that imputes NaN values in series
impute = lambda series: ____
# Impute NaNs in the bmi column of imp_globmean
imp_globmean['bmi'] = ____
print("Global mean = " + str(fheroes['bmi'].mean()) + "\n")
groups = imp_grpmean.groupby(['Publisher', 'Alignment'])
# Impute NaNs in the bmi column of imp_grpmean
imp_grpmean['bmi'] = groups[____].____
print(groups['bmi'].mean())