Imputacja wartości NaN
Spróbujmy zaimputować brakujące wartości, korzystając z metody .transform(). W poprzednim zadaniu utworzyłeś/-aś DataFrame fheroes, z którego usunięto wszystkie grupy z niewystarczającą liczbą obserwacji bmi. Kolumna bmi zawiera jednak wiele brakujących wartości (NaN). Masz do dyspozycji dwie kopie DataFrame fheroes (imp_globmean i imp_grpmean). Twoim zadaniem jest zaimputowanie wartości NaN w kolumnie bmi – odpowiednio: ogólną średnią oraz średnią dla każdej grupy zdefiniowanej przez czynniki Publisher i Alignment.
Wskazówka: obiekty pandas Series oraz tablice NumPy mają specjalną metodę .fillna(), która zastępuje wszystkie napotkane wartości NaN wartością podaną jako argument.
To ćwiczenie jest częścią kursu
Ćwiczenie pytań na rozmowach kwalifikacyjnych z programowania w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj funkcję lambda, która imputuje wartości
NaNwseriesjej średnią. - Zaimputuj wartości
NaNw kolumniebmiobiektuimp_globmean, używając ogólnej średniej. - Zaimputuj wartości
NaNw kolumniebmiobiektuimp_grpmean, używając średniej dla każdej grupy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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())