Imputace chybějících hodnot NaN
Zkusíme imputovat chybějící hodnoty pomocí metody .transform(). V předchozím úkolu jsi vytvořil/a DataFrame fheroes, ze kterého byly odstraněny všechny skupiny s nedostatečným počtem pozorování sloupce bmi. Sloupec bmi ale stále obsahuje hodně chybějících hodnot (NaN). Máš k dispozici dvě kopie DataFramu fheroes (imp_globmean a imp_grpmean). Tvojí úlohou je nahradit hodnoty NaN ve sloupci bmi — v první kopii celkovým průměrem, ve druhé průměrem příslušné skupiny definované faktory Publisher a Alignment.
Tip: pandas Series i NumPy pole mají speciální metodu .fillna(), která nahradí všechny nalezené hodnoty NaN hodnotou zadanou jako argument.
Toto cvičení je součástí kurzu
Procvičování otázek z kódovacích pohovorů v Pythonu
Pokyny k cvičení
- Definuj lambda funkci, která nahradí hodnoty
NaNvseriesjejím průměrem. - Ve sloupci
bmiDataFramuimp_globmeannahraď hodnotyNaNcelkovým průměrem. - Ve sloupci
bmiDataFramuimp_grpmeannahraď hodnotyNaNprůměrem příslušné skupiny.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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())