Как чистить датасеты: разбор аномалий в данных о парковках
Работа с большими наборами данных — это всегда приключение, где самые интересные находки часто прячутся среди ошибок. Недавно команда столкнулась с датасетом о загруженности парковок, который оказался полон не только полезной информации, но и весьма специфических аномалий.
Что пошло не так в данных о парковках?
В датасете, который охватывает 4,68 млн получасовых замеров по 210 муниципальным парковкам, обнаружилось несколько явных расхождений. Самая заметная проблема — это строки с отрицательным процентом занятости (occupancy_rate < 0). Такие данные встречаются в небольшом проценте записей, но они требуют внимания.
Корень проблемы: технический сбой в расчетах
Анализ показал, что отрицательные значения появились в период с мая по декабрь 2025 года. Причина кроется в коде расчета: отсутствовала функция ограничения (клампа). Если система получала данные о свободных местах, превышающие общую емкость, числитель мог уйти в минус.
Как правильно считать загруженность?
Помимо отрицательных значений, были выявлены и другие методологические неточности, которые могли исказить картину. Например, при расчете показателя занятости знаменателем для расчета должны были использоваться только «общие места без инвалидных» (common_spaces), а не общее количество мест (total_spaces).
Кроме того, были замечены случаи, когда данные о свободных местах для инвалидов превышали паспортную емкость. Это говорит о необходимости более строгого контроля входных данных.
Фокус на прозрачности, а не только на исправлении
Вместо того чтобы пытаться