Учебник Pandas для начинающих
Pandas — это де-факто стандарт для анализа табличных данных в Python: от чтения CSV и Excel до сложной агрегации, объединения таблиц и работы с временными рядами. Этот курс — не шпаргалка по методам, а глубокий разбор того, как pandas устроен внутри и почему он ведёт себя так, а не иначе. Мы разберём выравнивание по индексу как центральную идею библиотеки, ловушки loc/iloc, актуальное поведение Copy-on-Write в pandas 2.x, split-apply-combine в groupby, тонкости merge и реструктуризации, временные ряды и реальные приёмы производительности.
Курс рассчитан на тех, кто уже знает базовый Python и хочет перейти от «копирую примеры со Stack Overflow» к осознанной работе с данными. После него вы будете понимать, почему появляется SettingWithCopyWarning, когда apply убивает производительность, чем transform отличается от agg, и где pandas пора заменить на Polars или Spark.
Курс «Pandas» состоит из 6 разделов и 18 уроков: Series и DataFrame: фундамент, Индексация и отбор данных, Очистка и преобразование данных, Группировка и агрегация, Объединение и реструктуризация и Временные ряды, ввод-вывод и производительность. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Series и DataFrame: фундамент
- Зачем нужен pandas и Series изнутри
Место pandas в стеке данных и глубокий разбор Series: индекс, выравнивание по индексу, доступ к данным и векторизация.
- DataFrame: структура и способы создания
Как устроен DataFrame изнутри: словарь столбцов-Series с общим индексом, создание из dict/list/массивов/файлов и просмотр данных.
- Система типов: dtypes, nullable и category
dtypes в pandas: int/float/bool/object/datetime, nullable Int64 и boolean, category для экономии памяти, когда что использовать.
- Зачем нужен pandas и Series изнутри
2 Индексация и отбор данных
- loc против iloc: метки и позиции
Глубокий разбор loc и iloc: метки против позиций, включительные и исключительные срезы, выбор строк и столбцов, типичные ловушки.
- Булева индексация, query, isin и between
Булева индексация в pandas, метод query для читаемых фильтров, isin для членства, between для диапазонов, at/iat для скалярного доступа.
- SettingWithCopyWarning и Copy-on-Write в pandas 2.x
Почему возникает SettingWithCopyWarning, что такое представление и копия, как Copy-on-Write в pandas 2.x меняет правила и как писать присваивание правильно.
- loc против iloc: метки и позиции
3 Очистка и преобразование данных
- Пропуски и дубликаты
Работа с пропусками в pandas: isna/fillna/dropna/interpolate, NaN против NA, стратегии заполнения, поиск и удаление дубликатов.
- Приведение типов, переименование и замена
astype, to_datetime, to_numeric с errors в pandas; rename столбцов и индекса, replace значений, map для перекодировки по словарю.
- Строки .str и почему apply медленный
Строковый аксессор .str в pandas, vectorized-операции над текстом, apply/map/applymap и почему apply медленнее векторизации.
- Пропуски и дубликаты
4 Группировка и агрегация
- groupby и split-apply-combine
Как устроен groupby в pandas: модель split-apply-combine, ленивость, итерация по группам, простые агрегации и сравнение с SQL GROUP BY.
- agg, transform и apply: в чём разница
Агрегации agg с несколькими функциями и именованные агрегации, отличие transform от agg и apply в groupby, когда что применять.
- filter групп, pivot_table и crosstab
Фильтрация групп через filter, сводные таблицы pivot_table с aggfunc и margins, частотные таблицы crosstab, работа с результатом группировки.
- groupby и split-apply-combine
5 Объединение и реструктуризация
- merge: объединение таблиц по ключу
merge в pandas глубоко: how inner/left/right/outer, on и left_on/right_on, validate, дубликаты ключей, индикатор и суффиксы.
- concat, join по индексу и сравнение с SQL
concat для склейки таблиц по строкам и столбцам, join по индексу, ignore_index и keys, соответствие операций pandas и SQL JOIN.
- Реструктуризация: melt, pivot, stack и MultiIndex
Смена формы данных в pandas: wide и long, melt и pivot, stack и unstack, иерархический индекс MultiIndex, срезы и swaplevel.
- merge: объединение таблиц по ключу
6 Временные ряды, ввод-вывод и производительность
- Временные ряды: datetime-индекс, resample и rolling
Временные ряды в pandas: DatetimeIndex, частоты, resample для агрегации по времени, rolling-окна, shift и аксессор dt, таймзоны.
- Ввод-вывод: read_csv, parquet и Excel
Чтение и запись данных в pandas: тонкости read_csv (dtype, parse_dates, usecols, chunksize), parquet против csv, работа с Excel.
- Производительность, best practices и что дальше
Оптимизация pandas: правильные dtypes, category, векторизация, eval/query, антипаттерны, когда pandas не тянет и переход на Polars/Dask/Spark.
- Временные ряды: datetime-индекс, resample и rolling