NaN値の補完
.transform()メソッドを使って値を補完してみましょう。前のタスクでは、bmiの観測数が不足しているグループを除外したDataFrame fheroes を作成しました。しかし、bmi列には欠損値(NaN)が多く含まれています。fheroesのコピーであるimp_globmeanとimp_grpmeanが与えられているので、bmi列のNaNを、全体の平均値、そしてPublisherとAlignmentの要因で定義される各グループの平均値で、それぞれ補完してください。
ヒント: pandasのSeriesやNumPy配列には、引数で指定した値で見つかったすべてのNaNを置き換える特別なメソッド.fillna()があります。
この演習はコースの一部です
Pythonでコーディング面接問題を練習する
演習の手順
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())