Data Science и аналитика

Учебник Pandas для начинающих

18 уроков · 6 разделов · бесплатно, без регистрации

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. 1 Series и DataFrame: фундамент

    1. Зачем нужен pandas и Series изнутри

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

    2. DataFrame: структура и способы создания

      Как устроен DataFrame изнутри: словарь столбцов-Series с общим индексом, создание из dict/list/массивов/файлов и просмотр данных.

    3. Система типов: dtypes, nullable и category

      dtypes в pandas: int/float/bool/object/datetime, nullable Int64 и boolean, category для экономии памяти, когда что использовать.

  2. 2 Индексация и отбор данных

    1. loc против iloc: метки и позиции

      Глубокий разбор loc и iloc: метки против позиций, включительные и исключительные срезы, выбор строк и столбцов, типичные ловушки.

    2. Булева индексация, query, isin и between

      Булева индексация в pandas, метод query для читаемых фильтров, isin для членства, between для диапазонов, at/iat для скалярного доступа.

    3. SettingWithCopyWarning и Copy-on-Write в pandas 2.x

      Почему возникает SettingWithCopyWarning, что такое представление и копия, как Copy-on-Write в pandas 2.x меняет правила и как писать присваивание правильно.

  3. 3 Очистка и преобразование данных

    1. Пропуски и дубликаты

      Работа с пропусками в pandas: isna/fillna/dropna/interpolate, NaN против NA, стратегии заполнения, поиск и удаление дубликатов.

    2. Приведение типов, переименование и замена

      astype, to_datetime, to_numeric с errors в pandas; rename столбцов и индекса, replace значений, map для перекодировки по словарю.

    3. Строки .str и почему apply медленный

      Строковый аксессор .str в pandas, vectorized-операции над текстом, apply/map/applymap и почему apply медленнее векторизации.

  4. 4 Группировка и агрегация

    1. groupby и split-apply-combine

      Как устроен groupby в pandas: модель split-apply-combine, ленивость, итерация по группам, простые агрегации и сравнение с SQL GROUP BY.

    2. agg, transform и apply: в чём разница

      Агрегации agg с несколькими функциями и именованные агрегации, отличие transform от agg и apply в groupby, когда что применять.

    3. filter групп, pivot_table и crosstab

      Фильтрация групп через filter, сводные таблицы pivot_table с aggfunc и margins, частотные таблицы crosstab, работа с результатом группировки.

  5. 5 Объединение и реструктуризация

    1. merge: объединение таблиц по ключу

      merge в pandas глубоко: how inner/left/right/outer, on и left_on/right_on, validate, дубликаты ключей, индикатор и суффиксы.

    2. concat, join по индексу и сравнение с SQL

      concat для склейки таблиц по строкам и столбцам, join по индексу, ignore_index и keys, соответствие операций pandas и SQL JOIN.

    3. Реструктуризация: melt, pivot, stack и MultiIndex

      Смена формы данных в pandas: wide и long, melt и pivot, stack и unstack, иерархический индекс MultiIndex, срезы и swaplevel.

  6. 6 Временные ряды, ввод-вывод и производительность

    1. Временные ряды: datetime-индекс, resample и rolling

      Временные ряды в pandas: DatetimeIndex, частоты, resample для агрегации по времени, rolling-окна, shift и аксессор dt, таймзоны.

    2. Ввод-вывод: read_csv, parquet и Excel

      Чтение и запись данных в pandas: тонкости read_csv (dtype, parse_dates, usecols, chunksize), parquet против csv, работа с Excel.

    3. Производительность, best practices и что дальше

      Оптимизация pandas: правильные dtypes, category, векторизация, eval/query, антипаттерны, когда pandas не тянет и переход на Polars/Dask/Spark.