NaN 값 대치(임퓨테이션)
이번에는 .transform() 메서드를 사용해 값을 대치해 보겠습니다. 이전 과제에서 bmi 관측치가 충분하지 않은 그룹을 제거한 DataFrame fheroes를 만들었죠. 하지만 bmi 열에는 누락값(NaN)이 많이 있습니다. fheroes DataFrame의 두 복사본(imp_globmean, imp_grpmean)이 주어졌을 때, bmi 열의 NaN을 전체 평균값으로, 그리고 Publisher와 Alignment 요인으로 정의한 그룹별 평균값으로 각각 대치하세요.
팁: pandas Series와 NumPy 배열에는 인자로 지정한 값으로 모든 NaN을 대체하는 전용 .fillna() 메서드가 있습니다.
이 연습은 강의의 일부입니다
Python으로 코딩 인터뷰 문제 연습하기
연습 안내
series의 평균으로series안의NaN값을 대치하는 람다 함수를 정의하세요.imp_globmean의bmi열에서NaN을 전체 평균값으로 대치하세요.imp_grpmean의bmi열에서NaN을 그룹별 평균값으로 대치하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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())