🏅

Глава 2 — Олимпийские медали

Инструменты и упражнения
🧰 2.1 Инструменты и концепции
Input Data
Концепция: Загрузка данных
Палитра: In/Out
Импортирует данные из различных источников: Excel, CSV, базы данных, текстовые файлы.
Browse
Концепция: Просмотр данных
Палитра: In/Out
Даёт табличный вид данных в потоке в точке подключения. Для проверки данных на любом этапе.
Output Data
Концепция: Вывод данных
Палитра: In/Out
Записывает поток данных в файл или базу данных.
Comment
Концепция: Заметки
Палитра: Documentation
Позволяет писать заметки на workflow для добавления контекста к потоку данных.
Filter
Концепция: Разделение данных
Палитра: Preparation
Создаёт условие, разделяющее данные строка за строкой на True и False выходы.
Formula
Концепция: Вычисления
Палитра: Preparation
Создаёт функцию, которая обновит существующую колонку или запишет результат в новую.
Join
Концепция: Объединение данных
Палитра: Join
Объединяет два потока данных, выравнивая записи по совпадающим полям.
Running Total
Концепция: Накопительная сумма
Палитра: Transform
Создаёт нарастающую сумму по числовому полю в потоке входящих данных.
Sample
Концепция: Подвыборки данных
Палитра: Preparation
Позволяет создавать и работать с подмножеством данных (Top N, процент, случайная выборка).
Select
Концепция: Нужные результаты
Палитра: Preparation
Включает и исключает поля, изменяет типы данных, порядок полей и метаданные.
Sort
Концепция: Организация данных
Палитра: Preparation
Упорядочивает записи таблицы в алфавитном или числовом порядке по указанным полям.
Summarize
Концепция: Агрегация данных
Палитра: Transform
Выполняет групповые операции над данными: сумма, подсчёт, среднее, максимум/минимум.
Tool Container
Концепция: Группировка инструментов
Палитра: Documentation
Группирует инструменты для ясности и позволяет отключать их при необходимости.
Transpose
Концепция: Денормализация
Палитра: Transform
Помогает денормализовать данные — переводит горизонтальные поля в вертикальные строки.
Union
Концепция: Добавление записей
Палитра: Join
Добавляет записи из нескольких источников данных одну за другой в единый поток.
Cross Tab
Концепция: Нормализация наборов
Палитра: Transform
Создаёт нормализованный (более читаемый) набор данных, превращая строки в столбцы.
⛷️ 2.2 Фристайл: первый workflow

Freestyle Skiing — Олимпийские медали

Задача: найти лучшую страну

В этом упражнении мы строим workflow, который отвечает на вопрос: какая страна показала наилучшие результаты во фристайле на Олимпийских играх 2002 и 2006 годов?

Данные: файл All Medals.xlsx, лист Athletes

Оценка: 3 очка за золото, 1.5 — за серебро, 1 — за бронзу

  • 1
    Подключение данных: Input Tool → выбрать All Medals.xlsx (лист Athletes). Сразу добавить Browse + Select после каждого Input.
  • 2
    Фильтр по виду спорта: Filter Tool → Basic Filter → поле Sport = "Freestyle Skiing". Синтаксис: имена полей в квадратных скобках [Sport], строки — в кавычках.
  • 3
    Фильтр по годам: Второй Filter → Custom Filter → формула: [Year] = "2002" OR [Year] = "2006"
  • 4
    Агрегация по стране: Summarize Tool → Group By: Country; Sum: Gold, Silver, Bronze
  • 5
    Расчёт очков: Formula Tool → новое поле Score (тип Double): 3*[Sum_Gold] + 1.5*[Sum_Silver] + [Sum_Bronze]
  • 6
    Сортировка: Sort Tool → поле Score по убыванию (Descending)
  • 7
    Топ-1: Sample Tool → Top 1 Record
  • 8
    Очистка: Select Tool → оставить только поле Country
  • 9
    Просмотр результата: Browse Tool → запустить workflow
Input Browse Select Filter (Sport) Filter (Year) Summarize Formula Sort Sample Select Browse
✅ Лучшие практики из упражнения

• После каждого Input ставить Browse + Select
• Browse после каждого инструмента, значительно меняющего структуру данных (Summarize, Transpose, Cross Tab)
• Создавать полностью воспроизводимый результат — не интерпретировать Browse вручную

🧹 2.3 Упорядочиваем данные (Let's Tidy Things Up)
🧹

Транспозиция и экспорт данных

Tidy данные + относительные пути

Данные в «широком» формате (Gold, Silver, Bronze — отдельными столбцами) нужно привести в «длинный» (tidy) формат для машинной обработки.

  • 1
    Импорт: Input Tool → All Medals.xlsx → Browse + Select
  • 2
    Transpose: ключевые поля — все кроме Gold, Silver, Bronze. Поля данных — Gold, Silver, Bronze.
  • 3
    Browse после Transpose — обязательно!
  • 4
    Select: переименовать поля Name → «Тип медали», Value → «Количество медалей»
  • 5
    Filter: [Medal Count] > 0 — убрать записи с нулём медалей. Числовые значения без кавычек!
  • 6
    Browse + Output: сохранить как Tidy Medal Data.csv с относительным путём .\Tidy Medal Data.csv
📌 Концепция: Tidy Data

Tidy данные — не очень читаемы для человека, но высокочитаемы для машин. Каждая запись содержит всю необходимую информацию, и есть только один столбец для работы — интерактивный фронтенд работает очень быстро с такими данными.

📌 Концепция: Относительные пути

.\ — текущая папка (где лежит workflow)
..\ — родительская папка
.\Folder Name\ — папка внутри текущей

Используйте относительные пути при совместном использовании Alteryx-файлов.

📈 2.4 Современная история (Modern History)
📈

Исторический подсчёт медалей с Cross Tab

Running Total + Cross Tab

Задача: создать таблицу с историческим накопительным подсчётом медалей по странам и годам в «широком» формате.

  • 1
    Импорт + Browse + Select из All Medals.xlsx
  • 2
    Summarize: Group By Country и Year; Sum: Gold, Silver, Bronze
  • 3
    Formula: создать поле Total Medals = Sum_Gold + Sum_Silver + Sum_Bronze
  • 4
    Select: оставить только Country, Year, Total Medals
  • 5
    Sort: по Country и Year по возрастанию — порядок важен для Running Total
  • 6
    Running Total: Group By Country; Running Total на Total Medals → создаст нарастающую сумму, которая сбрасывается при появлении новой страны
  • 7
    Browse — проверить: алфавитный список стран, год растёт, RunTot_Total Medals накапливается
  • 8
    Cross Tab: превратить строки с годами в отдельные столбцы. После — Browse.
  • 9
    Formula × 7: заменить NULL нулями или предыдущим значением. Синтаксис: IF IsNull([2000]) THEN 0 ELSEIF IsNull([2002]) THEN [2000] ELSE [2002] ENDIF
  • 10
    Select: убрать старые разреженные поля, переименовать новые
  • 11
    Browse + Output: сохранить как Historical Medal Count.csv
📌 Синтаксис IF-THEN в Formula

IF условие THEN результат ELSEIF условие2 THEN результат2 ELSE по_умолчанию ENDIF

Проверка на NULL: IsNull(x)

🏆 2.5 Мозг против силы (Brains vs. Brawn)
🧬

Объединение медальных и нобелевских данных

Join + Union + Tool Containers

Задача: объединить данные об олимпийских медалях с данными о лауреатах Нобелевской премии по стране происхождения.

Поток 1 — Медали

  • Input: All Medals.xlsx
  • Transpose + переименование (Medal Type, Medal Count)
  • Filter: Medal Count > 0
  • Summarize: Group By Country → Sum Medal Count
  • Select: переименовать в «Total Medal Count»

Поток 2 — Нобелевские лауреаты

  • Input: Nobel Laureates.csv
  • Browse + Select
  • Filter: Year >= 2000 (тип Double)
  • Summarize: Group By Birth Country → Count
  • Sort: алфавитный порядок Birth Country
  • Select: переименовать в «Total Nobel Laureates»
  • J
    Join: Left (Country) → Right (Birth Country). Сохранить оба поля Join — нужны для следующего шага.
  • U
    Union: объединить все 3 выхода Join (L, J, R). Настройка: Auto Config by Name. Переименовать связи: Left, Join, Right.
  • F
    Formula: IF IsNull([Country]) THEN [Birth Country] ELSE [Country] ENDIF → поле Countries
  • S
    Select: Countries в начало, убрать Country и Birth Country
  • O
    Output: Brains vs. Brawn.csv
✅ Лучшая практика: Tool Containers + Comments

При объединении двух потоков используйте Tool Containers для группировки каждого потока. Добавьте Comments с описанием. Свёрнутые контейнеры превращают сложный workflow в две чётко видимые части — «Подготовка медальных данных» и «Подготовка нобелевских данных».

✅ Именование связей

Лучшая практика — давать полезные имена каждой связи, входящей в множественный соединитель. Переименуйте #1, #2, #3 в Left, Join, Right — это значительно упрощает отладку.

👶

Глава 3 — Унисекс имена

Новые инструменты подготовки данных
🧰 3.1 Новые инструменты
Imputation
Концепция: Обработка NULL
Палитра: Preparation
Заменяет конкретное значение в числовых полях. Чаще всего используется для замены NULL-значений нулями или средними/медианными значениями.
Multi-Field Formula
Концепция: Расчёты по нескольким полям
Палитра: Preparation
Создаёт формулу, которая будет повторно применена сразу к нескольким полям. Например, замена NULL во всех числовых полях одной формулой.
Multi-Row Formula
Концепция: Повторяющиеся расчёты
Палитра: Preparation
Создаёт формулу, которая может ссылаться на данные из других строк. Полезно для расчётов типа «предыдущее значение».
Text Input
Концепция: Ситуативные данные
Палитра: In/Out
Позволяет создавать наборы данных вручную — вводя данные прямо в инструмент без файла.
Data Cleansing
Концепция: Анализ проблем
Палитра: Preparation
Исправляет распространённые проблемы качества данных: лишние пробелы, NULL, нежелательные символы.
👶 3.2 Унисекс имена (Gender Swapped)
👶

Анализ унисекс имён

Imputation + Multi-Field Formula

Задача: анализ файла Unisex Names.txt — определить тренды в использовании имён для мальчиков и девочек.

  • 1
    Input: файл Unisex Names.txt — tab-деlineated формат
  • 2
    Browse + Select: Alteryx не распознал Female и Male как числовые поля → в Select изменить типы на Double. Year также привести к Double для упрощения фильтров.
  • 3
    Imputation: заменить NULL-значения нулями в числовых полях Female и Male.
  • 4
    Filter: разделить данные на два 10-летних периода для сравнения.
  • 5
    Multi-Field Formula: применить расчёты процентов/долей сразу к нескольким полям одной формулой.
💡 Почему Imputation, а не Formula?

Imputation специально создан для обработки NULL-значений в числовых полях и может автоматически заменять NULL средним или медианным значением — что Formula не умеет делать так же легко.

💡

Ключевые концепции

Справочник по основам
🔣 Булева логика в Filter Tool

AND — И

Если оба значения (слева и справа) истинны → True.

Пример: [Sport] = "Freestyle" AND [Year] = "2002"

OR — ИЛИ

Если хотя бы одно из значений истинно → True.

Пример: [Year] = "2002" OR [Year] = "2006"

NOT — НЕ

Инвертирует значение: если True → False, если False → True.

Скобки и порядок операций

Скобки меняют порядок вычислений:
[Sport] = "Freestyle" AND ([Year] = "2002" OR [Year] = "2006")

📌 Синтаксис

Имена полей — в квадратных скобках: [Field Name]
Строковые значения — в кавычках: "Значение"
Числовые значения — без кавычек: [Medal Count] > 0
Ключевое слово OR и символ || — эквивалентны

📁 Пути к файлам

Относительные пути

  • .\ — текущая папка
  • ..\ — родительская папка
  • .\Folder\ — подпапка
  • Рекомендуются при совместном использовании файлов

Абсолютные пути

  • Полный путь: C:\Data\file.xlsx
  • Ломаются при перемещении workflow
  • Не подходят для совместной работы
✅ Сводка лучших практик из книги
Золотые правила начинающего

1. Browse + Select после каждого Input — всегда проверяйте данные при импорте
2. Browse после Summarize, Transpose, Cross Tab, Join, Union — после любого существенного изменения структуры
3. Browse перед каждым Output — убедитесь в правильности данных перед записью
4. Ограничивайте данные как можно раньше — Filter сразу после Select ускоряет обработку и предотвращает ошибки памяти
5. Относительные пути — для всех Output при совместном использовании
6. Tool Containers + Comments — для сложных workflow с несколькими потоками
7. Именуйте связи — особенно при Join (L, J, R вместо #1, #2, #3)
8. Повторяемость результатов — не интерпретируйте Browse вручную, делайте workflow самодостаточным