Заказчиком поставлена задача подготовить данные по продажам к включению в контур корпоративного прогнозирования. Дело в том, что данные из представленного источника вызывают опасения по качеству. И в соответствии с ТЗ, качество данных в конкретном случае в абсолютном приоритете по отношению к полноте данных.
Поэтому основной нюанс в том, что если найдена ошибка в какой либо операции, то удаляется вся история продаж конкретной позиции для конкретного контрагента.
Итак, на входе таблица в базе данных. Несколько десятков миллионов строк. Нужно продумать признаки, которые будут сигнализировать об ошибке в конкретной строке, или хотя бы о том, что строка подозрительна.
Далее, необходимо разработать программу, которая подготовит датафрейм с ошибочными и подозрительными строками, для загрузки и анализа в Power BI, а также датафрейм с очищенными безошибочными данными, для использования в контуре прогнозирования.
Загружаем необходимые библиотеки.
Методы загрузки данных.
Загружаем основные данные.
Загружаем классификатор.
Загружаем данные по контрагентам.
Загружаем статусы контрагентов.
Объединяем загрузку в одну функцию.
Добавляем критерии, по которым будем ловить ошибки.
Ищем выбросы.
Задаём нужный цикл для поиска выбросов.
Котловой метод для выбросов тоже полезен.
Отслеживаем интересный косяк в данных.
Иногда не хватает оперативки, нужно вовремя чистить память.
Продолжаем обработку.
После обработки формируем отчёт по выбросам для выгрузки в Power BI.
Выгружаем файл с отчётом.
В Power BI формируется отчёт по всем ошибочным и подозрительным данным.
На дашборде можно увидеть все ошибочные данные, по разным критериям, в разных разрезах. И самое интересное, это оценка качества данных в целом, по периодам и по конкретным контрагентам.
Следующим этапом нужно создать очищенную от ошибок таблицу.
Сформируем список индексов строк для удаления.
Сформируем очищенный датафрейм.
Экспортируем полученную таблицу в базу данных.
Есть важный нюанс в данных. Его нужно учесть в отдельном критерии.
Ну и конечно нужно запустить описанные функции.
Ссылка на мой код в GitHub!
Всем аналитикам и датасаентистам приятного кодинга!