Этап 3 из 14 · ≈ 16 ч

NumPy и pandas

Основа с Junior

Массивы и векторизация, таблицы, группировки, объединения, работа со временем.

Что важно знать

  • NumPy: массивы, broadcasting, векторные операции.
  • pandas: groupby, merge, pivot_table, apply и почему его избегать.
  • Ловушки: дубли после merge, SettingWithCopyWarning, типы дат.
  • Большие данные: чтение по частям, Polars, DuckDB.

Критерии освоения

Junior ≈ 16 ч

  • Загружает, фильтрует, группирует и объединяет таблицы в pandas
  • Обрабатывает пропуски и типы данных

Практика. Провести анализ открытого датасета поездок такси — очистка, агрегации, объединение со справочником.

Middle ≈ 8 ч

  • Пишет векторизованный код вместо циклов и apply
  • Работает с временными рядами в pandas — ресемплинг, скользящие окна
  • Обрабатывает данные больше памяти по частям или в Polars и DuckDB

Практика. Ускорить медленный скрипт обработки на pandas минимум в 10 раз векторизацией и сравнить с Polars.

Senior ≈ 10 ч

  • Обрабатывает данные, не помещающиеся на одну машину, в Spark или аналоге и оптимизирует такие расчёты

Практика. Перенести расчёт признаков на сотни миллионов событий в Spark и сократить время расчёта, разобрав план выполнения.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Как работать с пропущенными значениями в данных?Junior

Сначала понять, почему значение пропущено: технический сбой, «не применимо» (нет второго адреса), пользователь не захотел указывать. Пропуск часто несёт информацию. Варианты: исключить строки (если пропусков мало и они случайны), заполнить (медианой…

Полный разбор
Почему apply и циклы в pandas медленные и как писать быстрее?Middle

Векторные операции над столбцами (df["a"] df["b"], np.where, .str, .dt) выполняются в C над массивами. apply по строкам и циклы iterrows вызывают Python-функцию на каждую строку — медленнее в десятки–сотни раз. Для больших данных: правильные типы (category…

Полный разбор
Как работают groupby и merge в pandas и какие у них ловушки?Junior

groupby — разбить, применить агрегат, собрать (split-apply-combine): df.groupby("city")["amount"].agg(["sum", "mean"]). merge — соединение таблиц по ключам, как SQL JOIN (how="left", on=). Ловушки: размножение строк при дублях ключа, NaN-ключи отбрасываются в…

Полный разбор
Что такое массивы NumPy и как считать без циклов?Junior

ndarray — массив чисел одного типа в непрерывной памяти; операции над ним (a + b, a 2, np.sqrt(a), a @ b) выполняются в C над всем массивом сразу — в десятки раз быстрее цикла Python. Broadcasting — правило, по которому массивы разной формы приводятся друг к…

Полный разбор
Как вы проводите разведочный анализ данных (EDA)?Junior

Цель EDA — понять данные до модели: структура (строки, столбцы, типы, единицы, что такое одна строка), качество (пропуски, дубли, выбросы, ошибки ввода), распределения признаков и целевой переменной, связи между признаками и с целевой, время (тренды…

Полный разбор
Как работать с временными рядами в pandas — ресемплинг, скользящие окна, сдвиги?Middle

Индекс — DatetimeIndex (pd.to_datetime и set_index). resample("D") меняет частоту с агрегатом (события → сумма по дням, дни → недели). rolling(7) — скользящее окно (среднее за 7 последних точек; с индексом времени — rolling("7D")). shift(n) — сдвиг на n…

Полный разбор

← Вся карта «Data Scientist»

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования