Imputación de valores NaN
Vamos a imputar algunos valores usando el método .transform(). En la tarea anterior creaste un DataFrame fheroes donde se eliminaron todos los grupos con una cantidad insuficiente de observaciones de bmi. Sin embargo, nuestra columna bmi tiene muchos valores ausentes (NaN). Dadas dos copias del DataFrame fheroes (imp_globmean e imp_grpmean), tu tarea es imputar los NaN de la columna bmi con el valor medio global y, respectivamente, con la media por grupo definida por los factores Publisher y Alignment.
Consejo: las Series de pandas y los arrays de NumPy tienen un método especial .fillna() que sustituye todos los NaN encontrados por un valor especificado como argumento.
Este ejercicio forma parte del curso
Practicing Coding Interview Questions in Python
Instrucciones del ejercicio
- Define una función lambda que impute los valores
NaNenseriescon su media. - Imputa los
NaNde la columnabmideimp_globmeancon el valor medio global. - Imputa los
NaNde la columnabmideimp_grpmeancon la media por grupo.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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())