Пример очистки данных

В данной статье продемонстрирован пример очистки данных, продемонстрированный на версии 1.0.3 DVT.

Для того чтобы создать проект в DVT необходимо зайти в систему и нажать «Создать проект»

В форме создания проекта задать ему наименование и нажать кнопку «Создать».

Теперь приступаем к формированию проекта в DVT: для этого переходим в созданный проект.

Сборка проекта происходит путем перетягивания нод из левой панели (1) в рабочую область (2) и последующей их настройки (3).

Выберем для начала подключение. Для этого перетягиваем нод Get Existing DB Connection в рабочую область и нажимаем в ее правом верхнем углу, в открывшемся окне выбираем нужное подключение, нажимаем «Сохранить».

Теперь добавляем таблицу, которую необходимо прочитать с помощью ноды Read Table from DB. Соединим эту ноду с предыдущей и настроим только что добавленную нажав кнопку «».

Выберем таблицу «Валовая прибыль» (1) и возьмем из нее следующие поля (2):

  • Period (период);

  • SumReal (сумма реализации);

  • PodrReal (подразделение реализации).

А также укажем название поля, по которому будет происходить сортировка — «Колонка для индекса» (3).

Предположим, что часть подразделений в добавленной таблице неправильные и это надо исправить. У нас есть Excel-файл с соответствиями неправильных и правильных наименований полей. Как сопоставить эти данные в DVT?

Добавляем ноду Get Existing S3 Connection (у нас она уже заранее настроена) а также ноду Load Excel и соединяем их, в настройках ноды Load Excel: выбираем нужный файл из облачного хранилища.

Теперь соединим два получившиеся датафрейма, которые на данном этапе выглядят следующим образом:

Добавляем ноду Join DataFrames и соединяем наши датафреймы с ней.

Теперь сопоставим датафреймы с помощью простого перетаскивания элементов в окне настройки ноды, а также меняем «Тип объединения» на «left».

Теперь оценим промежуточный результат. Для этого добавим ноду Display DataFrame и соединим с нодой Join DataFrames и выполним проект, нажав кнопку внизу справа.

Примечание

Данный пример продемонстрирован на версии 1.0.3 DVT. В последующих релизах функционал ноды Display DataFrame выполняется с помощью опций следующим образом:

Сначала необходимо включить кэширование для ноды, из которой надо показать датафрейм. Для этого правой кнопкой мыши кликаем по ноде и активируем переключатель «Кэширование», затем выполнить проект с помощью пункта меню «Запустить до этой ноды», после чего, выбрать пункт меню «Показать датафреймы».

По кнопкеможно открыть консоль с логами выполнения текущего проекта.

После выполнения проекта откроем ноду Display DataFrame по кнопке .

В данной форме видно, что DVT сопоставил поля и там, где были верные наименования в колонке «PodrReal_Correct» значение «null», где при сопоставлении было выявлено несоответствие замена — указаны верные наименования.

Теперь заменим неправильные наименования. Для этого удалим ноду Display DataFrame, добавим ноду Filter DataFrame и соединим ее с нодой Join DataFrames. Теперь настроим добавленную ноду. Нажимаем кнопку . Зададим фильтру название для удобства, здесь это будет «Filter По пустому подразделению Корректировки» (1), нажимаем «+» (2) и в качестве колонки выбираем «PodrReal_Correct», затем устанавливаем «Оператор» — «isnull» (3).

Затем добавляем исполняемый код с помощью ноды Execute Python Code on DataFrame, где указываем следующий код:

df_in["PodrReal"] = df_in["PodrReal_Correct"]

Таким образом, ранее мы разделили наш поток данных на две части и, теперь, в той части, где колонка «PodrReal_Correct» заполнена ее значение будет перенесено в основную колонку «PodrReal».

Теперь соединим вместе оба потока, для этого используем блок Union DataFrames и соединяем с ним ноды Filter DataFrame и Execute Python Code on DataFrame, открываем добавленную ноду и нажимаем здесь кнопку «Automap», теперь поля соединились.

Теперь удалим лишние данные (в нашем случае, это колонка «PodrReal_Correct»). Для этого добавляем ноду Drop Columns и соединяем ее с Union DataFrames. Теперь настроим добавленную ноду: выберем из выпадающего списка колонку, которую необходимо удалить.

Теперь запишем полученные данные в файл формата Excel. Для этого используем ноду Save Excel. А также добавим ноду Get Existing S3 Connection для сохранения записанного файла в облачном хранилище. Последовательно соединим добавленные ноды с остальным проектом и настроим ноду Save Excel: укажем папку, в которую необходимо сохранить файл и зададим ему имя.

Теперь выполним получившийся проект, нажав кнопку , а по кнопке можно посмотреть как идет выполнение проекта.

Все готово, но давайте проверим сформированный файл. Он выглядит таким образом: