開始使用免費開始

NaN 值補植

來用 .transform() 方法做數值補植吧。在前一個任務中,你建立了 DataFrame fheroes,其中已移除了 bmi 觀測值數量不足的群組。不過,我們的 bmi 欄位仍有許多遺漏值(NaN)。給定 fheroes 的兩個副本(imp_globmeanimp_grpmean),你的任務是將 bmi 欄中的 NaN,分別以整體平均值,以及以由 PublisherAlignment 因子所定義之每個群組的平均值來補植。

提示:pandas 的 Series 與 NumPy 陣列都有 .fillna() 這個方法,可將所有遇到的 NaN 以參數指定的值取代。

本練習屬於課程

Python 程式面試題實作練習

檢視課程

練習說明

  • 定義一個 lambda 函式,將 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())
編輯並執行程式碼