Вернуться в видеотеку

Junior аналитик данных | Собеседование | karpov.courses

Разбор публичного технического интервью для junior аналитика: Python/Pandas и SQL в ClickHouse на продуктовых данных. Ведущий показывает типичные ошибки в фильтрации, агрегации и декомпозиции аналитических задач.

Источник: karpov.courses

Открыть на YouTube

Таймлайн

Коротко о видео

Это публичная симуляция технического собеседования на 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.
  • При расчёте активных дней нужно считать уникальные даты, а не события: один пользователь может совершить много событий в один день.

Рекомендуем посмотреть