Bổ sung giá trị cho NaN
Hãy thử bổ sung (impute) một số giá trị bằng cách dùng phương thức .transform(). Ở tác vụ trước, bạn đã tạo DataFrame fheroes trong đó mọi nhóm không đủ số lượng quan sát bmi đã bị loại bỏ. Tuy nhiên, cột bmi của chúng ta có khá nhiều giá trị khuyết (NaN). Với hai bản sao của DataFrame fheroes (imp_globmean và imp_grpmean), nhiệm vụ của bạn là bổ sung các NaN trong cột bmi bằng giá trị trung bình toàn cục và bằng giá trị trung bình theo nhóm được xác định bởi hai yếu tố Publisher và Alignment, tương ứng.
Mẹo: pandas Series và NumPy arrays có phương thức đặc biệt .fillna() để thay thế tất cả NaN gặp phải bằng một giá trị được truyền vào như một đối số.
Bài tập này là một phần của khóa học
Luyện tập câu hỏi phỏng vấn lập trình bằng Python
Hướng dẫn bài tập
- Định nghĩa một hàm lambda để bổ sung các giá trị
NaNtrongseriesbằng giá trị trung bình của chính nó. - Bổ sung các
NaNở cộtbmicủaimp_globmeanbằng giá trị trung bình toàn cục. - Bổ sung các
NaNở cộtbmicủaimp_grpmeanbằng giá trị trung bình theo nhóm.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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())