始める無料で始める

NaN値の補完

.transform()メソッドを使って値を補完してみましょう。前のタスクでは、bmiの観測数が不足しているグループを除外したDataFrame fheroes を作成しました。しかし、bmi列には欠損値(NaN)が多く含まれています。fheroesのコピーであるimp_globmeanimp_grpmeanが与えられているので、bmi列のNaNを、全体の平均値、そしてPublisherAlignmentの要因で定義される各グループの平均値で、それぞれ補完してください。

ヒント: pandasのSeriesやNumPy配列には、引数で指定した値で見つかったすべてのNaNを置き換える特別なメソッド.fillna()があります。

この演習はコースの一部です

Pythonでコーディング面接問題を練習する

コースを見る

演習の手順

  • series内のNaNをその系列の平均で補完するラムダ関数を定義してください。
  • imp_globmeanbmi列のNaNを全体の平均値で補完してください。
  • imp_grpmeanbmi列の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())
コードを編集して実行