Содержание курса
Модуль 1. Введение: зачем дата-инженеру pandas и среда
7 уроков
1.
О курсе: как проходить обучение и канал «Логово Дата-Инженера»
↗
2.
Почему pandas — ключевой инструмент дата-инженера в Python
↗
3.
Установка: Python, окружение и pandas 2.x
↗
4.
Jupyter Notebook и IPython: рабочее место для данных
↗
5.
Минимум NumPy для pandas: массивы, dtype, векторизация
↗
6.
Импорт pandas, проверка версии и экосистема (NumPy, PyArrow)
↗
7.
Как читать ошибки pandas и быстрый цикл эксперимента
↗
Модуль 2. Series — одномерная структура
7 уроков
1.
Что такое Series: значения плюс индекс-метки
↗
2.
Создание Series из списка, словаря и скаляра
↗
3.
Индекс Series: метки против позиций
↗
4.
Доступ к элементам Series по метке и по позиции
↗
5.
Типы данных dtype у Series
↗
6.
Векторизованные операции и выравнивание по индексу
↗
7.
Пропуски в Series: NaN и его особенности
↗
Модуль 3. DataFrame — основа
8 уроков
1.
Что такое DataFrame: таблица из колонок-Series
↗
2.
Создание DataFrame: словарь, список словарей, NumPy
↗
3.
Индекс, колонки и dtypes; атрибуты shape, columns, index
↗
4.
Осмотр данных: head, tail, sample, info, describe
↗
5.
Выбор колонок: одной и нескольких
↗
6.
Добавление, вычисление и удаление колонок
↗
7.
Переименование колонок и индекса
↗
8.
set_index и reset_index: колонка как индекс и обратно
↗
Модуль 4. Индексация и выборка
9 уроков
1.
Две системы доступа: loc по меткам и iloc по позициям
↗
2.
loc подробно: метки, срезы, списки
↗
3.
iloc подробно: позиции и срезы
↗
4.
Булева индексация: отбор строк по условию
↗
5.
Сложные условия: операторы &, | , ~ и скобки
↗
6.
Фильтры isin, between и отбор по нескольким колонкам
↗
7.
Метод query: фильтрация выражением-строкой
↗
8.
Присваивание через loc и предупреждение SettingWithCopyWarning
↗
9.
Копия против представления и Copy-on-Write в pandas 2.x
↗
Модуль 5. Ввод и вывод данных
8 уроков
1.
Единый API ввода-вывода: семейства read_ и to_
↗
2.
Чтение CSV: основные опции sep, header, names, dtype
↗
3.
CSV глубже: parse_dates, кодировки, пропуски, проблемные строки
↗
4.
Чтение больших CSV по частям: chunksize
↗
5.
JSON: чтение, запись и разворачивание вложенного json_normalize
↗
6.
Excel: чтение листов через read_excel
↗
7.
Parquet и Feather: колоночные форматы для дата-инженера
↗
8.
Чтение и запись через SQL: read_sql и to_sql
↗
Модуль 6. Типы данных и память
7 уроков
1.
Обзор dtypes pandas: числа, bool, object, datetime, category
↗
2.
Тип object и почему он дорогой; строковый тип
↗
3.
Nullable-типы: Int64, boolean, string и пропуски
↗
4.
Категориальный тип category: экономия памяти и скорость
↗
5.
astype и понижение разрядности (downcasting)
↗
6.
Измерение и оптимизация памяти DataFrame
↗
7.
PyArrow-backend в pandas 2.x: когда включать
↗
Модуль 7. Очистка данных
8 уроков
1.
Пропущенные значения: NaN, None, NaT и pd.NA
↗
2.
Поиск и подсчёт пропусков: isna, notna
↗
3.
Удаление пропусков: dropna и его параметры
↗
4.
Заполнение пропусков: fillna, ffill, bfill, интерполяция
↗
5.
Дубликаты: duplicated и drop_duplicates
↗
6.
Замена значений: replace и сопоставление по словарю
↗
7.
Приведение «грязных» чисел и дат к нужным типам
↗
8.
Сквозной пример: чистим реальный грязный датасет
↗
Модуль 8. Преобразование данных
7 уроков
1.
Векторизация против циклов по строкам: почему циклы — зло
↗
2.
assign: вычисляемые колонки без мутации
↗
3.
map для Series: поэлементное преобразование
↗
4.
apply: применение функции к Series и DataFrame
↗
5.
Условная замена: where и mask
↗
6.
Условные колонки: np.where, np.select, pd.cut, pd.qcut
↗
7.
Когда apply оправдан, а когда это ловушка производительности
↗
Модуль 9. Работа со строками
6 уроков
1.
Строковый аксессор .str: векторные операции над текстом
↗
2.
Базовые методы: lower, upper, strip, len, contains
↗
3.
Разбиение и сборка строк: split, cat, join
↗
4.
Регулярные выражения: extract, replace, findall
↗
5.
Проверки: startswith, endswith, isnumeric, match
↗
6.
Типовая очистка текстовых колонок в пайплайне
↗
Модуль 10. Дата и время
8 уроков
1.
Тип datetime64 и Timestamp: зачем правильные типы дат
↗
2.
Разбор дат: to_datetime, форматы и обработка ошибок
↗
3.
Аксессор .dt: компоненты даты и времени
↗
4.
Арифметика дат и Timedelta
↗
5.
DatetimeIndex: даты в роли индекса
↗
6.
Ресемплинг временных рядов: resample
↗
7.
Скользящие агрегаты по времени
↗
8.
Часовые пояса: tz_localize и tz_convert
↗
Модуль 11. Группировка и агрегация
10 уроков
1.
Идея split-apply-combine и объект groupby
↗
2.
Простые агрегаты по группам: sum, mean, count, size
↗
3.
agg: несколько агрегатов и именованные агрегаты
↗
4.
Разные агрегаты для разных колонок
↗
5.
transform: результат размера исходных данных
↗
6.
filter: отбор целых групп по условию
↗
7.
apply на группах: гибкость и её цена
↗
8.
Группировка по нескольким ключам
↗
9.
Группировка по производному ключу: функция, бины, период
↗
10.
as_index, reset_index и типичные ошибки groupby
↗
Модуль 12. Объединение данных
9 уроков
1.
Конкатенация concat по строкам и колонкам
↗
2.
merge: соединения в стиле SQL
↗
3.
Типы соединений: inner, left, right, outer
↗
4.
Ключи соединения: on, left_on/right_on, по индексу
↗
5.
Размножение строк при merge — главная ловушка
↗
6.
Валидация соединений: validate и indicator
↗
7.
join по индексу
↗
8.
merge_asof и merge_ordered для временных рядов
↗
9.
combine_first и update: дополнение и обновление
↗
Модуль 13. Изменение формы данных
8 уроков
1.
Длинный и широкий форматы данных: зачем и когда
↗
2.
pivot: из длинного в широкий
↗
3.
pivot_table: сводные таблицы с агрегацией
↗
4.
melt: из широкого в длинный
↗
5.
stack и unstack
↗
6.
crosstab: таблицы сопряжённости
↗
7.
get_dummies: one-hot кодирование категорий
↗
8.
explode: разворачивание списков в строки
↗
Модуль 14. Иерархический индекс (MultiIndex)
6 уроков
1.
Что такое MultiIndex и откуда он берётся
↗
2.
Создание иерархического индекса; set_index по нескольким…
↗
3.
Доступ к данным по уровням: loc и xs
↗
4.
Сортировка уровней и swaplevel
↗
5.
Агрегация по уровням MultiIndex
↗
6.
Сглаживание индекса: когда MultiIndex мешает
↗
Модуль 15. Оконные и накопительные операции
6 уроков
1.
Накопительные функции: cumsum, cumprod, cummax
↗
2.
Скользящее окно rolling
↗
3.
Расширяющееся окно expanding
↗
4.
Экспоненциально взвешенное окно ewm
↗
5.
shift, diff и pct_change
↗
6.
Оконные операции внутри групп
↗
Модуль 16. Производительность и масштаб
9 уроков
1.
Откуда берётся медленный pandas
↗
2.
Векторизация и встроенные методы вместо apply
↗
3.
Правильные dtypes как ускорение
↗
4.
eval и query для больших выражений
↗
5.
Обработка данных больше памяти: chunking
↗
6.
Профилирование времени и памяти
↗
7.
Копии, представления и Copy-on-Write на практике
↗
8.
Когда pandas перестаёт справляться
↗
9.
Альтернативы для масштаба: Polars, Dask, DuckDB, Spark
↗
Модуль 17. pandas глазами дата-инженера
6 уроков
1.
pandas против SQL: переносим мышление
↗
2.
pandas против Spark: одна машина против кластера
↗
3.
Место pandas в дата-платформе: где уместен, где нет
↗
4.
Идемпотентность и детерминизм pandas-пайплайна
↗
5.
Контракты данных и валидация схемы
↗
6.
Логирование и наблюдаемость pandas-джоба
↗
Модуль 18. Качество данных и тестирование
6 уроков
1.
Проверки качества данных: ассерты и ожидания
↗
2.
Тестирование pandas-кода: assert_frame_equal и pytest
↗
3.
Фикстуры с тестовыми DataFrame
↗
4.
Профилирование данных: describe, value_counts, пропуски
↗
5.
Поиск аномалий и выбросов
↗
6.
Чек-лист код-ревью pandas-пайплайна
↗
Модуль 19. Продакшн-пайплайн на pandas
6 уроков
1.
Структура pandas-ETL проекта: модули и конфиги
↗
2.
Параметризация и запуск через CLI
↗
3.
Чтение источников и запись приёмников
↗
4.
Метод-чейнинг и pipe: читаемые конвейеры
↗
5.
Обработка ошибок и частичных данных
↗
6.
Упаковка и запуск pandas-джоба
↗
Модуль 20. Итоговый проект: end-to-end ETL на pandas
6 уроков
1.
Постановка задачи: пакетный ETL на pandas
↗
2.
Слои данных: raw, cleansed, curated
↗
3.
Проектируем доменную модель и шаги пайплайна
↗
4.
Реализация: чтение, очистка, трансформации, агрегации
↗
5.
Тесты, запуск и оптимизация пайплайна
↗
6.
Дорожная карта: что дальше за пределами pandas
↗