Exploratory Data Analysis: распределения и аномалии
Содержание курса
0 / 1 баллов
Найдите пропуски и связи между ними
В payload['df'] приходит DataFrame с несколькими признаками, в которых есть пропуски. Посчитайте долю пропусков по столбцам и найдите столбцы, чьи пропуски появляются вместе.
Верните словарь:
{
"missing_ratio": {...}, # {имя столбца: доля пропусков от 0 до 1}, по всем столбцам
"high_missing_cols": [...], # столбцы, где доля пропусков строго больше 0.2
"high_corr_pairs": [...], # пары (col1, col2) с корреляцией масок пропусков строго больше 0.5
}
Маска пропусков — булева серия isnull(). Корреляцию считайте только по столбцам, где есть хотя бы один пропуск; если таких столбцов меньше двух, high_corr_pairs пустой. Внутри пары имена идут в лексикографическом порядке, col1 < col2.
Границы строгие. Столбец с долей пропусков ровно 0.2 в high_missing_cols не попадает, пара с корреляцией ровно 0.5 — в high_corr_pairs тоже. В заготовке уже лежит хелпер _compute_corr_pairs(masks_df, threshold=0.5), он считает пары и сортирует имена внутри пары.
Пример
DataFrame с тремя столбцами:
A — 10% пропусков
B — 25% пропусков
C — 30% пропусков
корреляция масок пропусков B и C равна 0.6
{
"missing_ratio": {"A": 0.1, "B": 0.25, "C": 0.3},
"high_missing_cols": ["B", "C"],
"high_corr_pairs": [("B", "C")],
}О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Как проверяется решение
Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
