Профессия: Аналитик данных
Профессия: Аналитик данных

Полная версия

Профессия: Аналитик данных

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
1 из 3

Антон Золотавин

Профессия: Аналитик данных


Профессия:


Аналитик данных


Антон Золотавин

Введение. От таблицы к решению

В понедельник руководитель интернет-магазина открывает отчёт: заказов стало больше, а денег после расходов осталось меньше. В отделе рекламы говорят, что привели новую аудиторию. В отделе продаж предлагают увеличить скидку. Финансист просит остановить кампании. У всех есть числа, но они описывают разные части происходящего. Аналитику предстоит собрать их в одну проверяемую картину.

Этой работе посвящена книга. Вы научитесь получать данные, приводить их в порядок, рассчитывать показатели и объяснять результат людям, которым нужно принять решение. Excel поможет быстро разобраться в таблицах. SQL позволит извлекать и объединять записи. Python пригодится для повторяемой обработки и проверки расчётов. На дашборде вы покажете главное так, чтобы пользователь понимал смысл показателя, период и ограничения.

Учебный проект проходит через всю книгу. В учебном магазине «Маяк» продаются товары для дома, кухни и спорта. Мы исследуем первое полугодие 2025 года. Все записи созданы специально для практикума и не описывают настоящую компанию. В комплекте есть CSV, готовая база SQLite, скрипт создания данных, расчётный скрипт и контрольные результаты. Никаких сведений о реальных покупателях в них нет.

Основной вопрос проекта: почему увеличение количества заказов не привело к сопоставимому росту маржинального дохода после маркетинга? Чтобы ответить, недостаточно найти падающий график. Придётся договориться о смысле выручки, исключить повторные записи, проверить статусы, сопоставить каналы и разобрать составляющие расходов. Итогом станет небольшой аналитический продукт: подготовленные данные, запросы, воспроизводимый расчёт, дашборд и записка для руководителя.

Как проходить практикум

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

В книге встречаются три вида чисел. Контрольные результаты относятся к приложенным файлам и должны совпасть при соблюдении условий. Малые условные примеры объясняют отдельный приём и не входят в итоги магазина. Сведения о рынке труда привязаны к источнику и дате проверки; они не обещают определённую зарплату. Это различие помогает не переносить учебное допущение в реальную задачу.

Для работы достаточно компьютера, табличного редактора, Python и редактора SQL. Для SQL выбран SQLite: база хранится в одном файле, сервер устанавливать не требуется. Этот выбор сокращает подготовку первого проекта. В компаниях вы можете встретить PostgreSQL, ClickHouse и другие системы; их различия разобраны отдельно. Визуализацию можно собрать в DataLens или в другом доступном BI-инструменте, следуя спецификации из книги. Подписка на конкретный сервис не является условием выполнения расчётов.

Рассчитывайте время по своему темпу. Одному читателю понадобится больше занятий на формулы, другому — на программирование. Полезнее закончить один проверяемый этап, чем провести условный час за экраном. После занятия сохраняйте рабочий файл, кратко записывайте, что получилось, и формулируйте следующий вопрос. Если код не работает, сохраните полный текст ошибки и минимальный пример. Возвращаться к задаче с этими записями гораздо легче.

Не пытайтесь сразу освоить все инструменты отрасли. На первом круге важнее понимать структуру таблицы, способ расчёта и смысл вывода. Часть задач можно решить несколькими средствами. Мы намеренно пересчитаем одни и те же итоги в SQL и Python: независимая сверка обнаруживает ошибки, которые остаются незаметными внутри одного красивого отчёта.

Что считать законченной работой

К концу практикума у вас должна быть папка, которую другой человек сможет открыть и понять без устных пояснений. В ней лежат описание задачи, словарь полей, исходные данные, правила очистки, SQL-запросы, программа расчёта, итоговая витрина и аналитическая записка. Дашборд сопровождается инструкцией: какие фильтры работают, как обновляются данные и что означают показатели.

Отдельно сохраните перечень ограничений. У магазина нет всех данных настоящего бизнеса: отсутствуют зарплаты сотрудников, аренда, налоги, история фактических платежей и отдельный журнал возвратов. Поэтому наш итог после маркетинга нельзя называть чистой прибылью. В упражнении все завершённые заказы имеют одну товарную позицию. Позже мы разберём переход к нескольким позициям и покажем, почему он меняет расчёты.

Эти ограничения не делают проект бесполезным. Они задают границы ответа. Вы сможете показать, какие каналы и расходы связаны с изменением результата, а затем предложить дополнительную проверку. Хороший аналитик умеет остановить вывод там, где заканчиваются данные. На следующем шаге он запрашивает недостающую информацию или проектирует эксперимент.

Глава 1. Работа аналитика и её результат

За что платят специалисту

Аналитик данных помогает организации уменьшать неопределённость. Например, руководителю нужно выбрать товары для закупки, службе поддержки — оценить очередь обращений, а продуктовой команде — понять, где пользователи прекращают оформление заказа. Число строк в выгрузке само по себе никому не помогает. Пользу даёт связь между вопросом, надёжным расчётом и действием.

Обычная задача состоит из нескольких договорённостей. Кто будет использовать результат? Какое решение он принимает? Когда оно должно быть принято? Какие данные доступны к этому сроку? Что произойдёт, если расчёт ошибочен? Ответы определяют и глубину анализа, и формат выдачи. Для утреннего совещания может хватить проверенной таблицы. Для изменения кредитной политики потребуется совсем другой уровень проверки и согласования.

Разделение профессий зависит от компании. BI-аналитик обычно уделяет больше внимания модели данных, витринам и отчётности. Продуктовый аналитик исследует поведение пользователей, метрики и эксперименты. Бизнес-аналитик часто описывает требования и процессы. Data Scientist может строить прогнозные модели. Эти роли пересекаются, поэтому название вакансии нужно сопоставлять с задачами и требованиями, а не воспринимать как точное определение.

Начинающему специалисту полезно выбрать ограниченную область ответственности: регулярный отчёт продаж, качество данных по заявкам, анализ рекламных каналов. Такая область позволяет увидеть весь цикл работы. Если сразу обещать финансовую стратегию, машинное обучение и автоматизацию хранилища, будет трудно проверить, какая часть результата действительно ваша и насколько она надёжна.

Как выглядит рабочая неделя

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

Большая часть этой работы не похожа на эффектную демонстрацию нейросети. Нужно читать названия полей, искать ответственного за выгрузку, сверять итоги и возвращаться к определениям. Это нормальная часть профессии. Автоматизация полезна, когда процесс уже понятен; автоматизированная ошибка быстрее распространяется по отчётам.

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

Доход и условия работы

На странице профессии hh.ru при проверке 14 октября 2026 года в московском блоке были показаны 95 700–113 100 рублей, а среди отдельных стартовых вакансий встречались предложения от 37 500 и от 65 000 рублей [1]. Это снимок конкретной выдачи: он не задаёт общероссийскую ставку, не описывает все вакансии и не гарантирует доход выпускнику. Условия налогообложения и состав вознаграждения нужно читать в конкретном предложении.

Для собственного ориентира соберите таблицу из двадцати подходящих вакансий. Зафиксируйте дату, город, формат работы, требуемый опыт, обязанности, инструменты и указанную зарплату. Разделяйте суммы до и после налогов, фиксированную часть и бонусы. Не присваивайте вакансиям без зарплаты ноль: это отсутствие наблюдения, а не бесплатная работа. Медиану рассчитывайте только по сопоставимым значениям.

В штате обычно есть доступ к внутренним данным и коллегам, но есть и зависимость от процессов компании. На удалённой работе добавляется необходимость ясно фиксировать договорённости. Фриланс требует самостоятельно оценивать объём, искать заказчиков, ограничивать число правок и организовывать передачу результата. Начинающему специалисту особенно важен человек, который сможет проверить расчёт и объяснить ошибку; это стоит учитывать наряду с размером оплаты.

Практическая работа 1. Выберите рабочую роль

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

Изучите несколько актуальных вакансий своего региона или подходящей удалённой работы. Выпишите конкретные действия: «писать SQL-запросы», «согласовывать метрики», «строить регулярную отчётность». Если требование непонятно, сформулируйте вопрос для изучения. Результатом должна стать небольшая карта пробелов, а не бесконечный список технологий.

Критерий завершения прост: вы можете за минуту объяснить, какую работу хотите выполнять, кому она помогает и какой первый проект продемонстрирует вашу готовность. Для книги таким проектом станет анализ магазина «Маяк». В следующей главе мы превратим его общий вопрос в понятные требования.

Глава 2. Постановка задачи и язык показателей

Уточняем запрос руководителя

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

В проекте «Маяк» заказчиком выступает руководитель магазина. Ему нужно решить, какие изменения проверить в рекламных каналах во втором полугодии. Мы анализируем заказы с датой создания с 1 января по 30 июня 2025 года включительно. Данные фиксируют окончательные статусы и известные возвраты на момент учебной выгрузки. Отдельной даты возврата нет, поэтому весь возврат относится к месяцу исходного заказа. Это аналитика когорт заказов, а не календарный отчёт движения денег.

Такое уточнение сразу снимает потенциальный спор. Бухгалтер мог показать июльский возврат июньского заказа в июле, а наша таблица уменьшит июньскую выручку. Оба отчёта могут быть корректны для разных целей. Ошибка возникнет, если сравнить их итоги без согласования периода признания.

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

Единица наблюдения

Единица наблюдения — объект, который описывает одна строка. В orders это заказ. В customers — покупатель. В marketing — месяц и канал. В traffic — тоже месяц и канал, но значения представляют сеансы, а не людей. Пока вы не определили эту единицу для каждой таблицы, объединять их опасно.

Представьте заказ на три товара. Если таблица содержит три строки позиций, количество строк равно трём, а заказов только один. Расход на доставку 300 рублей относится ко всему заказу. После неосторожного объединения он может оказаться в каждой позиции, и сумма станет 900 рублей. Формулы работают, запрос выполняется, но ответ неверен из-за выбранной детализации.

Покупатели и сеансы также не взаимозаменяемы. Один человек может открыть сайт несколько раз и сделать несколько заказов. Показатель «завершённые заказы / сеансы» мы назовём отношением завершённых заказов к сеансам. Это полезная операционная метрика, но она не равна вероятности покупки уникальным посетителем. В другой модели такой коэффициент способен превышать 100%.

Договоримся о деньгах

В наших данных денежные поля выражены в целых рублях. У завершённого заказа gross — сумма товаров до скидки, discount — скидка, refund — возвращённая покупателю сумма. Чистая выручка для учебного анализа равна gross − discount − refund. Английское имя поля — net_revenue. Оно не означает универсальное бухгалтерское определение выручки.

Маржинальный доход до маркетинга равен net_revenue − cost − shipping. Поле cost обозначает себестоимость проданных товаров, shipping — переменные расходы на доставку. В учебной модели при полном возврате себестоимость и доставка не восстанавливаются: товар считается утраченным для дальнейшей продажи. Поэтому возвратный заказ может дать отрицательный вклад. В реальной компании нужно уточнить судьбу возвращённого товара и финансовые проводки.

Результат после маркетинга равен сумме маржинального дохода минус spend. Он не учитывает аренду, зарплаты и другие постоянные расходы. Название «чистая прибыль» здесь было бы неверным. Мы используем длинное, но точное название «маржинальный доход после маркетинга» и короткое имя after_marketing в коде.

У отменённых заказов все денежные поля равны нулю. Они участвуют в числе созданных заказов, но не в числе завершённых. В реальном бизнесе отмена иногда приводит к расходам. Тогда правила придётся изменить. Не скрывайте отличия реальных данных от учебной схемы, чтобы получить знакомый результат.

Паспорт метрики

Для каждого важного показателя создайте короткий паспорт. Запишите название, деловой вопрос, формулу, единицу измерения, детализацию, период, фильтры и ответственного за определение. Например, доля возвратных заказов — число завершённых заказов с refund > 0, делённое на число завершённых заказов. Это доля заказов, а не доля возвращённых рублей и не доля возвращённых товарных единиц.

Отдельно укажите поведение при нулевом знаменателе. Если завершённых заказов нет, доля возвратов неопределена. Отображайте пустое значение или прочерк с пояснением. Ноль утверждал бы, что возвратов среди существующих продаж нет, хотя продаж не было. В витрине храните числитель и знаменатель: это позволит корректно пересчитать показатель при другом наборе фильтров.

Нельзя получать общую маржинальность простым средним процентов каналов. У условного канала А выручка 1 000 рублей и вклад 500, у Б — 9 000 и вклад 900. Среднее двух долей равно 30%, а общая доля — 1 400 / 10 000 = 14%. Разница возникает из-за весов. Для итоговой карточки делите сумму вкладов на сумму выручки.

Практическая работа 2. Согласуйте результат

Подготовьте одностраничный бриф проекта. Включите вопрос руководителя, период, определения трёх денежных показателей, единицу строки каждой таблицы и перечень исключений. Укажите, что магазин и все записи учебные. Добавьте критерии приёмки: итоги SQL и Python совпадают, все месяцы присутствуют, фильтр канала изменяет связанные карточки, ограничения видны пользователю.

Проверьте бриф на неоднозначность. Что произойдёт с отменой? К какому месяцу отнесён возврат? Можно ли сравнить результат с банковской выпиской? Почему расходы на маркетинг нельзя присоединить к каждому заказу и затем просуммировать? Ответы должны следовать из текста, а не зависеть от вашей памяти. Теперь можно принимать данные и проверять, соответствуют ли они договорённостям.

Глава 3. Получение данных и первая проверка

Что находится в комплекте

Разархивируйте материалы в отдельную папку. Файл orders_raw.csv содержит 4 827 строк: в него намеренно добавлены двенадцать точных повторов и неодинаковая запись названий каналов. orders_clean.csv содержит 4 815 заказов без этих дефектов и служит эталоном. Не начинайте упражнение с эталона, иначе пропустите очистку. Файлы customers.csv и products.csv — справочники. В marketing.csv и traffic.csv по 24 строки: шесть месяцев и четыре канала.

База shop.sqlite уже содержит чистые таблицы orders, customers, products, marketing и traffic. Скрипт analyze.py добавляет обогащённые заказы, витрину mart_channel_month и таблицу monthly. Исходный SQL-этап книги работает с orders; в нём дубли уже исключены. Это специально разделённые маршруты: в Excel и Python вы изучаете очистку, а в SQL сосредоточиваетесь на логике запросов. Если импортируете сырой CSV самостоятельно, сначала выполните те же проверки качества.

Скрипт build_project.py позволяет заново создать учебные данные. Он использует фиксированное начальное состояние генератора случайных чисел. Не меняйте код и исходное состояние во время прохождения, иначе контрольные суммы станут другими. Скрипт не загружает данные из интернета и не требует учётных записей. Для проверки собственного кода достаточно приложенных файлов.

Словарь исходных полей

В orders поле order_id идентифицирует заказ, order_date хранит дату его создания в формате год-месяц-день. customer_id связывает заказ с покупателем, product_id — с товаром. channel принимает organic, search, social или email. status имеет значения completed и cancelled. quantity — количество единиц товара в заказе. Поля gross, discount, refund, cost и shipping хранят денежные суммы в рублях на весь заказ.

В customers одна строка соответствует одному customer_id; city обозначает город. В products находятся product_id, категория category, справочная цена unit_price и справочная себестоимость unit_cost. Для расчёта финансов используйте денежные суммы заказа, а не текущую цену справочника. В реальной системе справочная цена могла измениться после покупки. Историческую сумму нельзя восстанавливать по сегодняшнему прайс-листу без дополнительных условий.

В marketing сумма spend относится к комбинации month и channel. Значение month имеет вид 2025-01. В traffic поле sessions показывает число сеансов за ту же комбинацию. Расходы не разбиты по заказам, а сеансы не содержат идентификаторов пользователей. Поэтому мы не можем установить, какой конкретно сеанс привёл к заказу, и не можем рассчитать пользовательскую конверсию.

Словарь нужен не только для новичка. Представьте, что коллега заменил выгрузку и поле cost стало означать себестоимость одной единицы товара. Запрос по-прежнему выполнится, но перестанет учитывать количество. В словаре должно быть написано «на весь заказ». При изменении схемы эта формулировка поможет обнаружить несовместимость до публикации отчёта.

Принять файл — отдельная операция

До преобразования сохраните полученный оригинал. Зафиксируйте имя, дату получения, источник, период и число строк. В рабочую папку положите копию. Если через неделю источник пришлёт исправленную выгрузку, вы сможете понять, что изменилось. Нельзя одновременно изучать дефекты и незаметно исправлять единственный экземпляр данных.

CSV — текстовый формат, а не полноценная электронная таблица. В нём могут различаться разделители, кодировка, десятичный знак и формат дат. Открытие двойным щелчком доверяет автоматическому распознаванию редактора. При этом идентификатор с ведущими нулями иногда превращается в число, а неоднозначная дата интерпретируется в другой локали. Надёжнее запускать импорт и явно выбирать параметры.

Учебные CSV записаны в UTF-8 с маркером BOM и разделителем-запятой. В Excel используйте импорт из текста или CSV и проверьте предпросмотр. Число колонок должно совпадать со словарём. Не исправляйте неправильный разбор ручным перемещением ячеек. Вернитесь к параметрам импорта и устраните причину.

Пять проверок до анализа

Первая проверка — структура. Есть ли обязательные поля и не появились ли неожиданные колонки? Вторая — уникальность ключей. Третья — заполненность обязательных значений. Четвёртая — допустимость значений и диапазонов. Пятая — логические связи: возврат не должен превышать сумму после скидки, а заказ не может ссылаться на отсутствующего покупателя без отдельного правила обработки.

Не все необычные значения ошибочны. Отрицательная сумма могла быть корректирующей операцией. Пустой город мог означать, что его не собирали. Крупная покупка могла быть оптовой. Аналитик сначала определяет смысл, затем выбирает действие. Автоматически удалять всё, что отличается от среднего, значит менять исследуемую картину без основания.

Разделите дефекты на блокирующие и предупреждения. Повтор ключа с разными денежными суммами блокирует расчёт до выяснения версии записи. Несколько вариантов написания канала можно исправить однозначным правилом. Пустой город допускает публикацию общих итогов, но требует категории «Не указан» в географическом разрезе и предупреждения о полноте. Решение должно зависеть от влияния на вопрос пользователя.

Дубликат записи и повторное событие

Две полностью одинаковые строки в учебном CSV — технический повтор. Их можно оставить в одном экземпляре после фиксации правила. Но два заказа одного покупателя на один товар в один день не обязательно дубликаты. У каждого может быть собственный order_id. Удаление по имени, дате и сумме уничтожит настоящую покупку.

Если один order_id встречается дважды с разными статусами, перед вами может быть журнал изменений. Тогда нужна дата обновления и правило выбора последней версии. Без неё нельзя бездумно оставлять «первую» строку: порядок выгрузки не гарантирует хронологию. Запросите описание источника и сохраните конфликтные записи отдельно.

В учебных данных после удаления двенадцати точных повторов остаётся 4 815 уникальных order_id. Затем названия каналов приводятся к нижнему регистру, а пробелы по краям удаляются. Финансовые суммы от такой нормализации не меняются. Сравнение общей выручки до и после удаления дублей должно быть отражено в журнале качества, чтобы изменение не выглядело необъяснимым.

Практическая работа 3. Протокол приёмки

Создайте таблицу проверок с колонками «объект», «правило», «результат», «действие». Для orders_raw запишите 4 827 исходных строк, двенадцать точных повторов, 4 815 строк после очистки и нормализацию каналов. Для справочников проверьте уникальность ключа. Для marketing и traffic проверьте уникальность пары месяц-канал и наличие всех 24 комбинаций.

Не ограничивайтесь отметкой «ошибок нет». Сохраните численный результат каждой проверки: сколько пустых ключей, сколько неизвестных каналов, сколько несовпавших ссылок. Если правило допускает исключение, укажите, почему. Такой протокол позволяет повторить проверку при новом обновлении и сравнить качество источника во времени.

Дополнительное задание: сделайте копию данных, замените channel в одной строке на partner и попробуйте провести её через проверку. Она должна остановить обработку или создать явное предупреждение. Если новый канал незаметно исчезает из отчёта, фильтрация скрыла проблему. Исправьте процесс прежде, чем переходить к визуализации.

Глава 4.

Excel

для проверки и первого анализа

Организуем рабочую книгу

Создайте книгу с листами «Описание», «Исходные данные», «Заказы», «Проверки» и «Сводка». На первом листе укажите период, единицу строки и определения показателей. Исходный лист используйте как копию импорта. Преобразования выполняйте на рабочем листе или в Power Query. Итоговые показатели не должны зависеть от незаписанных ручных исправлений.

На страницу:
1 из 3