Python для аналитика: рабочий стек из Jupyter, pandas и графиков
Какие инструменты нужны аналитику в Python: Jupyter, pandas, NumPy и matplotlib, как они связаны и с какого рабочего сценария начать.

Аналитику не нужен “весь Python”. Нужен небольшой, понятный рабочий стек, который помогает взять данные, проверить их, посчитать показатель и показать вывод. Начнём с связки Jupyter + pandas + NumPy + matplotlib и разберём, где она дополняет SQL и BI, а где только усложняет задачу.
Коротко
Jupyter — рабочая среда для экспериментов и объяснения расчёта. pandas — таблицы и операции над ними. NumPy — численные массивы и функции. matplotlib — базовые графики. Вместе они закрывают большую часть небольших и средних исследовательских задач аналитика.
- Храни исходные данные отдельно от ноутбука и не меняй их на месте.
- Один ноутбук должен отвечать на один вопрос или исследование.
- Оставляй рядом с цифрой определение, фильтры и период расчёта.
- SQL лучше использовать для тяжёлой выборки, Python — для исследования и повторяемого анализа.
Из чего состоит стек
Инструменты не конкурируют между собой. SQL достаёт и агрегирует данные ближе к хранилищу. Python помогает быстро проверить гипотезу, соединить небольшой набор файлов, построить нестандартный график или сохранить расчёт в понятном ноутбуке. BI нужен, когда результат должен регулярно смотреть широкий круг людей.
| Инструмент | За что отвечает | Когда открывать |
|---|---|---|
| Jupyter | ячейки кода, текст, таблицы и графики в одном документе | исследование, разбор, обучение, прототип |
| pandas | табличные данные, фильтры, пропуски, группировки и соединения | CSV, выгрузка из SQL, подготовка отчёта |
| NumPy | массивы, численные операции и функции | векторные расчёты, симуляции, работа под капотом pandas |
| matplotlib | контролируемые графики и настройка осей | проверка тренда, распределения, сравнение сегментов |
| SQL / BI | источник данных и регулярная коммуникация результата | большие таблицы, дашборды, мониторинг |
Первый рабочий цикл
Новый ноутбук лучше начинать не с импорта десяти библиотек, а с заголовка, вопроса и условий. Затем загрузи минимальный срез, проверь форму и типы, сделай один расчёт и только после этого добавляй визуализацию. Такой порядок помогает не потеряться в графиках и случайных фильтрах.
# Вопрос: как меняется средний заказ по каналам за июль?
import pandas as pd
import matplotlib.pyplot as plt
orders = pd.read_csv('data/orders.csv', parse_dates=['created_at'])
july = orders.loc[
(orders['created_at'] >= '2026-07-01')
& (orders['created_at'] < '2026-08-01')
& (orders['status'] == 'paid')
].copy()
summary = july.groupby('channel', as_index=False).agg(
orders=('order_id', 'nunique'),
average_order=('revenue', 'mean'),
)
summary.plot.bar(x='channel', y='average_order', legend=False)
plt.show()Ноутбук должен объяснять, а не только считать
Через месяц результатом будут пользоваться не только ты. Подпиши, откуда пришли данные, какая строка считается заказом, почему выбран период и что означает график. Текстовые Markdown-ячейки — часть аналитики, а не украшение. Если расчёт нельзя пересказать без запуска всех ячеек, он плохо подготовлен для передачи.
Код может без ошибок посчитать среднее, DAU или retention. Но только аналитик задаёт знаменатель, временное окно, timezone и правило исключения тестовых пользователей.
- В начале запиши вопрос и единицу анализа.
- После загрузки покажи размер, период и пропуски.
- Перед графиком выведи маленькую итоговую таблицу.
- Не оставляй в финальном ноутбуке десятки случайных промежуточных экспериментов.
- Сохрани версию исходного файла или ссылку на запрос, из которого он получен.
Когда открыть SQL, а когда Python
Если таблица содержит сотни миллионов событий, не скачивай её целиком в ноутбук. Сначала отфильтруй период и агрегируй данные в SQL, затем передай в pandas результат, который помещается в память и нужен для исследования. Для регулярного KPI лучше оставить расчёт в SQL/BI, а ноутбук использовать как место проверки и поиска причин.
| Задача | Первый инструмент | Почему |
|---|---|---|
| DAU за год по всем событиям | SQL | данные уже находятся в хранилище, важны фильтры и объём |
| Проверить выгрузку и пропуски | pandas | быстрый интерактивный профиль файла |
| Регулярный KPI для команды | BI + SQL | обновление и единое определение |
| Сравнить несколько сценариев и построить нестандартный график | Python | удобно менять расчёт рядом с визуализацией |
Материалы по теме
Как тестировать аналитические расчёты на Python и pandas
Практический гайд по тестам для аналитика: проверить метрики на маленьком датасете, поймать регрессию и защитить расчёт от тихих изменений.
Читать материал
Как ускорить pandas: память, типы и обработка больших файлов
Что делать, если pandas медленно работает или не помещает файл в память: категории, downcast, chunksize, Parquet и контроль размера данных.
Читать материал
Pandas apply и векторизация: как писать быстрее и понятнее
Когда использовать apply, почему векторные операции быстрее и как переписать медленный построчный расчёт в pandas.
Читать материал