Імпутація значень NaN
Спробуймо виконати імпутацію значень за допомогою методу .transform(). У попередньому завданні ви створили датафрейм fheroes, де всі групи з недостатньою кількістю спостережень bmi були видалені. У нашому стовпці bmi однак чимало пропусків (NaN). Маючи дві копії датафрейма fheroes (imp_globmean та imp_grpmean), ваше завдання — заповнити NaN у стовпці bmi загальним середнім значенням і, відповідно, середнім значенням у межах груп, визначених факторами Publisher та Alignment.
Порада: обʼєкти pandas Series і масиви NumPy мають спеціальний метод .fillna(), який замінює всі наявні NaN значенням, переданим як аргумент.
Ця вправа є частиною курсу
Практика співбесід із програмування на Python
Інструкції до вправи
- Визначте функцію lambda, що замінює значення
NaNуseriesна її середнє. - Заповніть
NaNу стовпціbmiдатафреймаimp_globmeanзагальним середнім значенням. - Заповніть
NaNу стовпціbmiдатафреймаimp_grpmeanсереднім значенням у межах груп.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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())