Найти тему
Николай Лазарев

Python_warning_filter. Очистка данных для аналитики компании

Заказчиком поставлена задача подготовить данные по продажам к включению в контур корпоративного прогнозирования. Дело в том, что данные из представленного источника вызывают опасения по качеству. И в соответствии с ТЗ, качество данных в конкретном случае в абсолютном приоритете по отношению к полноте данных.

Поэтому основной нюанс в том, что если найдена ошибка в какой либо операции, то удаляется вся история продаж конкретной позиции для конкретного контрагента.

Итак, на входе таблица в базе данных. Несколько десятков миллионов строк. Нужно продумать признаки, которые будут сигнализировать об ошибке в конкретной строке, или хотя бы о том, что строка подозрительна.

Далее, необходимо разработать программу, которая подготовит датафрейм с ошибочными и подозрительными строками, для загрузки и анализа в Power BI, а также датафрейм с очищенными безошибочными данными, для использования в контуре прогнозирования.

Загружаем необходимые библиотеки.

-2

Методы загрузки данных.

Загружаем основные данные.

-3
-4

Загружаем классификатор.

-5

Загружаем данные по контрагентам.

-6

Загружаем статусы контрагентов.

-7

Объединяем загрузку в одну функцию.

-8

Добавляем критерии, по которым будем ловить ошибки.

-9

Ищем выбросы.

-10

Задаём нужный цикл для поиска выбросов.

-11

Котловой метод для выбросов тоже полезен.

-12

Отслеживаем интересный косяк в данных.

-13

Иногда не хватает оперативки, нужно вовремя чистить память.

-14

Продолжаем обработку.

-15
-16

После обработки формируем отчёт по выбросам для выгрузки в Power BI.

-17
-18

Выгружаем файл с отчётом.

-19

В Power BI формируется отчёт по всем ошибочным и подозрительным данным.

-20

На дашборде можно увидеть все ошибочные данные, по разным критериям, в разных разрезах. И самое интересное, это оценка качества данных в целом, по периодам и по конкретным контрагентам.

Следующим этапом нужно создать очищенную от ошибок таблицу.

Сформируем список индексов строк для удаления.

-21

Сформируем очищенный датафрейм.

-22
-23
-24

Экспортируем полученную таблицу в базу данных.

-25

Есть важный нюанс в данных. Его нужно учесть в отдельном критерии.

-26
-27
-28

Ну и конечно нужно запустить описанные функции.

-29
-30
-31
-32

Ссылка на мой код в GitHub!

Всем аналитикам и датасаентистам приятного кодинга!