Junior аналитик данных | Собеседование | karpov.courses
Разбор публичного технического интервью для junior аналитика: Python/Pandas и SQL в ClickHouse на продуктовых данных. Ведущий показывает типичные ошибки в фильтрации, агрегации и декомпозиции аналитических задач.
karpov.courses
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 119,8 тыс.
- Лайки на YouTube: 2,9 тыс.
Таймлайн
Коротко о видео
Это публичная симуляция технического собеседования на junior data analyst с двумя участниками. Александр решает задачи на Python и Pandas: срезы списков, чтение CSV, группировки, фильтрацию пользователей и работу со временем; Егор выполняет SQL-задачи в ClickHouse по событиям ленты. Ведущий акцентирует, что синтаксически работающий запрос может давать неверный продуктовый ответ, поэтому нужно проверять смысл фильтраций и агрегаций.
Затронутые темы
Что взять на заметку
- Для разворота списка в Python достаточно среза с шагом -1; важно понимать, что за этим стоит обратный порядок индексов.
- CSV следует читать с корректным разделителем и сначала просматривать небольшой фрагмент данных, а не печатать весь DataFrame.
- Для топа пользователей по прослушиванию музыки лучше сначала отфильтровать section == "music", затем сгруппировать по user_id и посчитать события, а не строить лишнюю pivot-таблицу.
- Исключить пользователей, которые пользовались лентой, не равно удалить строки с событиями ленты: нужно исключить целиком user_id, у которых хотя бы раз был Feed.
- Продолжительность использования продукта для каждого пользователя считается как max(time) - min(time); исходную колонку времени лучше не перезаписывать.
- В ClickHouse метрики просмотров, лайков и уникальных пользователей по дням можно собрать условными агрегатами countIf и uniqIf без нескольких подзапросов и JOIN.
- При расчёте активных дней нужно считать уникальные даты, а не события: один пользователь может совершить много событий в один день.