Пример использования узла Развертка транзакций для транспонирования данных

Узел Развертка транзакций имеет очень специфическое назначение: подготовить исходные данные для узла Анализ покупательских корзин. Узел Анализ покупательских корзин требует, чтобы каждая строка в исходной таблице представляла собой транзакцию, а каждая колонка – продукт.

На скриншоте ниже показан пример конфигурации узла. Мы импортировали файл TransactionData.csv с помощью узла Файлы CSV.

et transaction.rus

TransactionData.csv содержит две колонки, а именно: Consumer (Покупатель) и Product (Продукт). Каждый покупатель имеет собственный ID. Каждая транзакция (покупка) обозначается отдельно: так, например, покупатель с ID C10049 купил леденцы на палочке, зубную пасту, колу и т.д.

Поскольку каждая ячейка в колонке Product показывает только один товар, мы бы хотели представить это наглядно: для этого давайте добавим узел Производные колонки и введем запрос, показанный ниже.

et derive wizard.rus

В этом случае у нас будет следующий набор данных.

et derive view.rus

Для того, чтобы привести наши исходные данные в нужный формат и частично транспонировать их, используем узел Развертка транзакций: перенесем колонку Consumer в поле ID транзакции (ID строки) и колонку Product в ID операции (имена новых колонок). В поле Значение мы добавим новую колонку с количеством товара.

et wizard with value.rus

Выполним узел. Как вы видите на скриншоте ниже, количество товаров, приобретенных тем или иным клиентом, было объединено в одну колонку.

et value view.rus

Так, например, покупатель с ID C11279 купил немного молока (Milk), белый хлеб (White Bread), яйца (Eggs), картофельные чипсы (Potato Chips), но не покупал картофель (Potatoes). Другими словами, транзакция под номером C11279 касалась только этих продуктов.

Если поле Значение является пустым, выходные данные будут выглядеть следующим образом:

et boolean view.rus

Каждый продукт теперь представлен в виде колонки Булева типа. Если покупатель приобрел товар, т.е. транзакция была осуществлена, то значение колонки для такой транзакции будет "yes". Другими словами, все транзакции покупателя с ID 10049 были сгруппированы (или агрегированы) в единую запись. Аналогичным образом можно группировать (агрегировать) данные по другому принципу, например, по кассовому чеку. Но это возможно только в том случае, если в данных присутствует колонка с ID кассового чека.

Возможно, теперь некоторые пользователи захотят использовать узел Модификация колонок, для того, чтобы переименовать колонки с продуктами, созданные в ходе развертки транзакций. Это необходимо сделать, если вы хотите, чтобы в результатах узла Анализ покупательских корзин отображались понятные названия колонок.