Xử lý ngoại lệ bằng winsorization
Cho một basetable với hai biến: "sum\_donations" và "donor\_id". "sum_donations có thể chứa các giá trị ngoại lệ khi nhà tài trợ đóng góp những khoản đặc biệt lớn. Vì vậy, bạn muốn winsorize biến này sao cho 5% giá trị cao nhất được thay thế bằng giá trị phần trăm 5% trên cùng.
Bài tập này là một phần của khóa học
Phân tích dự đoán nâng cao với Python
Hướng dẫn bài tập
- In ra giá trị nhỏ nhất của
sum_donationsvà kiểm tra rằng nó ít nhất là 0. Sau đó in ra giá trị lớn nhất củasum_donations. - Điền phần trăm giới hạn dưới phù hợp. Vì tất cả các giá trị lớn hơn 0 là hợp lý và xuất hiện thường xuyên, không cần thay thế các giá trị thấp hơn giá trị phần trăm giới hạn dưới.
- Tạo biến mới "sum_donations_winsorized" là phiên bản đã winsorize của biến "sum_donations".
- In ra giá trị lớn nhất của
sum_donations_winsorized.
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.
from scipy.stats.mstats import winsorize
# Check minimum sum of donations
print(____["____"].____())
print(____["____"].____())
# Fill out the lower limit
lower_limit = ____
# Winsorize the variable sum_donations
basetable["sum_donations_winsorized"] = ____(____["____"], limits=[lower_limit, 0.05])
# Check maximum sum of donations after winsorization
print(____["____"].____())