🧠 Python для аналитиков: list comprehensions и полезные операторы
Это третья серия модуля 3 — и она про то, как писать Python: компактно, читаемо и в духе «питоничности».
кейс с CSV
объясняем
практика с # TODO:
20+ примеров с комментариями:
полный обзор встроенных операторов:
вложенные и многоуровневые конструкции:
❤️ И да, поставь реакцию за старание
💾 Скачать серию
💸 Поддержать канал
👉 Senior Data Analyst #python #модуль_03 #серия_03
Это третья серия модуля 3 — и она про то, как писать Python: компактно, читаемо и в духе «питоничности».
кейс с CSV
→ агрегируем продажи и выводим топ-5 товаров
объясняем
→ синтаксис list comprehension
практика с # TODO:
→ уникальные слова, таблица умножения, сортировка студентов
20+ примеров с комментариями:
→ от фильтрации чисел до генерации таблиц
полный обзор встроенных операторов:
→ any, all, zip, enumerate, sorted, map, filter
вложенные и многоуровневые конструкции:
→ матрицы, flatten, словари и множества
❤️ И да, поставь реакцию за старание
💾 Скачать серию
💸 Поддержать канал
👉 Senior Data Analyst #python #модуль_03 #серия_03
❤12
❓ Почему COUNT(*) может врать
На первый взгляд, COUNT(*) — надёжный. Он ведь просто считает строки, верно?
Где чаще всего обманывает:
▫️Дубликаты в источниках. ETL сломался — order_id задублировался, а COUNT(*) считает всё подряд.
▫️JOIN-размножение. Соединил пользователей с заказами и доставками? Один заказ превращается в несколько строк.
▫️Путаница в сущностях. Нам нужно посчитать «пользователей» или «заказы», а на деле считаем просто строки.
Как мыслить правильно:
▫️сначала определить что именно считаем (строки, уникальные заказы, пользователей);
▫️COUNT(DISTINCT) спасает, но стоит дорого;
▫️предагрегация перед JOIN почти всегда лучше;
▫️чистка источников = меньше дублей на входе.
В бою:
Я всегда отношусь к
💸 Поддержать канал
👉 Senior Data Analyst | #sql
На первый взгляд, COUNT(*) — надёжный. Он ведь просто считает строки, верно?
Но тут и ловушка: он считает всё, что попало в результат, а не то, что мы называем бизнес-сущностью.
Где чаще всего обманывает:
▫️Дубликаты в источниках. ETL сломался — order_id задублировался, а COUNT(*) считает всё подряд.
▫️JOIN-размножение. Соединил пользователей с заказами и доставками? Один заказ превращается в несколько строк.
▫️Путаница в сущностях. Нам нужно посчитать «пользователей» или «заказы», а на деле считаем просто строки.
Как мыслить правильно:
▫️сначала определить что именно считаем (строки, уникальные заказы, пользователей);
▫️COUNT(DISTINCT) спасает, но стоит дорого;
▫️предагрегация перед JOIN почти всегда лучше;
▫️чистка источников = меньше дублей на входе.
В бою:
Я всегда отношусь к
COUNT(*)
с подозрением.На ревью самый частый вопрос: «А не размножает ли JOIN строки?»
Если да — COUNT(*) почти наверняка врёт.
💸 Поддержать канал
👉 Senior Data Analyst | #sql
👍6🤝2
❓Как объяснить метрику продакту: экспертные приёмы
Переведи метрику в язык историй
Сухо: «Retention D7 = 18%».
По делу: «Из 100 новых пользователей только 18 возвращаются на 7-й день. Остальные 82 уходят, так и не увидев ценность продукта».
Привяжи динамику к бизнес-единицам
Сухо: «Конверсия упала на 2 п.п.»
По делу: «Это минус 200 оплат за неделю и –250k ₽ к выручке. Если тренд сохранится, потеряем миллион за месяц».
Покажи, что метрика встроена в правила игры
Сухо: «Мы мерим NPS ежеквартально».
По делу: «У нас правило: не выкатываем новый функционал, если NPS падает ниже 30. Это встроенный стоп-кран для команды».
💸 Поддержать канал
👉 Senior Data Analyst | #python #bi
Аналитик работает на стыке цифр и бизнеса. Но если продакт слышит только «ARPPU = 170», ценность теряется. Для него важен не сам показатель, а то, как он влияет на деньги, пользователей и решения.
Переведи метрику в язык историй
Сухо: «Retention D7 = 18%».
По делу: «Из 100 новых пользователей только 18 возвращаются на 7-й день. Остальные 82 уходят, так и не увидев ценность продукта».
Привяжи динамику к бизнес-единицам
Сухо: «Конверсия упала на 2 п.п.»
По делу: «Это минус 200 оплат за неделю и –250k ₽ к выручке. Если тренд сохранится, потеряем миллион за месяц».
Покажи, что метрика встроена в правила игры
Сухо: «Мы мерим NPS ежеквартально».
По делу: «У нас правило: не выкатываем новый функционал, если NPS падает ниже 30. Это встроенный стоп-кран для команды».
💸 Поддержать канал
👉 Senior Data Analyst | #python #bi
🔥5
❗️ Проблема
Большинство аналитиков докладывают метрики «как есть»: проценты и цифры.
Звучит умно. Но для продакта это скорее «радиошум», чем сигнал.
Что делать с этими числами? Радоваться? Плакать? Бежать чинить?
◾️ История вместо процента
18% retention звучит как сухая статистика.
А вот: «Из 100 новых пользователей 82 ушли, не увидев ценность» — это уже история.
Истории включают бизнес-мышление: кто эти 82, почему уходят, где мы потеряли value?
Приём:
→ говорите «каждый третий», «9 из 10», «из 100 — 82 ушли»;
→ переводите процент в людей, тогда цифра перестаёт быть абстракцией.
◾️ Динамика в бизнес-единицы
Для продакта «–2 п.п. конверсии» — это загадка.
А вот «–200 оплат за неделю, минус 250k ₽ выручки» — это уже проблема.
В процентах никто не живёт. Живут в деньгах, пользователях, транзакциях.
Приём:
→ всегда добавляйте абсолютные числа;
→ переводите метрику в деньги — лучший аргумент для приоритизации.
◾️ Метрика как правило игры
Метрика становится ценной, когда превращается в «правило».
Например: NPS < 30 = стоп релиза.
В этот момент аналитика перестаёт быть «отчётом в Excel» и становится частью процесса управления.
Приём:
→ договоритесь о порогах вместе с продуктовой командой;
→ формулируйте правила: если X < Y → не делаем Z.
Чеклист аналитика перед встречей
• могу ли я объяснить метрику без формулы?
• перевёл ли я динамику в людей или деньги?
• понятно ли, какое решение примет команда на основе этой цифры?
👉 Разница не в цифрах, а в языке.
И именно язык превращает тебя из ПОСТАВЩИКА дашбордов в того, к кому команда приходит за решениями.
Большинство аналитиков докладывают метрики «как есть»: проценты и цифры.
Retention D7 = 18% — и что?
Конверсия –2 п.п. — критично или нет?
NPS 27 — это хорошо или плохо?
Звучит умно. Но для продакта это скорее «радиошум», чем сигнал.
Что делать с этими числами? Радоваться? Плакать? Бежать чинить?
◾️ История вместо процента
18% retention звучит как сухая статистика.
А вот: «Из 100 новых пользователей 82 ушли, не увидев ценность» — это уже история.
Истории включают бизнес-мышление: кто эти 82, почему уходят, где мы потеряли value?
Приём:
→ говорите «каждый третий», «9 из 10», «из 100 — 82 ушли»;
→ переводите процент в людей, тогда цифра перестаёт быть абстракцией.
◾️ Динамика в бизнес-единицы
Для продакта «–2 п.п. конверсии» — это загадка.
А вот «–200 оплат за неделю, минус 250k ₽ выручки» — это уже проблема.
В процентах никто не живёт. Живут в деньгах, пользователях, транзакциях.
Приём:
→ всегда добавляйте абсолютные числа;
→ переводите метрику в деньги — лучший аргумент для приоритизации.
◾️ Метрика как правило игры
Метрика становится ценной, когда превращается в «правило».
Например: NPS < 30 = стоп релиза.
В этот момент аналитика перестаёт быть «отчётом в Excel» и становится частью процесса управления.
Приём:
→ договоритесь о порогах вместе с продуктовой командой;
→ формулируйте правила: если X < Y → не делаем Z.
Чеклист аналитика перед встречей
• могу ли я объяснить метрику без формулы?
• перевёл ли я динамику в людей или деньги?
• понятно ли, какое решение примет команда на основе этой цифры?
👉 Разница не в цифрах, а в языке.
И именно язык превращает тебя из ПОСТАВЩИКА дашбордов в того, к кому команда приходит за решениями.
🔥5👍4