Конспекты лекций по курсу "Основы Pandas для начинающих"
👋 Добро пожаловать!
Важное примечание: примеры кода в этих конспектах отличаются от тех, что были в лекциях. Я создавал их самостоятельно.
Этот репозиторий содержит мои личные конспекты, которые я веду по мере прохождения курса. Вся демо-часть курса законспектирована. А также самые интересные на мой взгляд задачки (из 4 части) сохранены. Пользуйтесь!
- Часть 1: Вводная Информация о курсе.
- Часть 2: Основы NumPy — Создание, индексация и математические операции.
- Часть 3: Введение в Pandas — Объекты Series и DataFrame, индексация, арифметика и базовые операции.
- Часть 4: Pandas: работа с источниками данных
- Часть 5: Pandas: чистка и подготовка данных к анализу
Первая часть полностью посвящена библиотеке NumPy — фундаменту для всех вычислений в анализе данных и машинном обучении на Python.
Ключевые темы, рассмотренные в конспекте:
- Создание массивов:
np.array,np.zeros,np.ones,np.arangeи другие. - Атрибуты массива:
.shape,.ndim,.dtype. - Типы данных: Явное и неявное приведение типов с помощью
.astype(). - Векторизация: Отличие арифметических операций в NumPy от стандартных списков Python.
- Индексация и срезы:
- Базовые срезы (
arr[a:n]). - Многомерная индексация (
arr[x, y]). - Булевы маски и логические операции.
- "Причудливая" индексация (
Fancy indexing).
- Базовые срезы (
- Манипуляции с формой:
.reshape(),.T(транспонирование). - Универсальные функции (ufunc): Математические, статистические и агрегирующие операции (
np.sqrt,.sum(),.mean(),.max()и т.д.). - Основы линейной алгебры: Матричное умножение, определитель, обратная матрица.
- Генерация случайных данных: Модуль
np.random.
Этот раздел посвящен основам библиотеки Pandas, ключевому инструменту для анализа данных в Python.
- Объект
Series(1D): - Объект
DataFrame(2D): - Индексация и выбор данных:
- Ключевые операции:
- Изменение индексов:
.reindex. - Сортировка:
.sort_index()и.sort_values(). - Арифметика с заполнением пропусков (
.addсfill_value). - Операции между
DataFrameиSeries(broadcasting).
- Изменение индексов:
- Описательные статистики и уникальные значения:
- Агрегирующие функции (
.sum,.mean) и их параметры (axis,skipna). - Сводная статистика:
.describe(). - Подсчет уникальных значений:
.value_counts(). - Фильтрация по вхождению:
.isin().
- Агрегирующие функции (
Этот раздел посвящен чтению и записи данных в самых распространенных форматах.
- Работа с CSV:
- Чтение с помощью
pd.read_csv()и его ключевые параметры:sep,header,names,index_col,skiprows,nrows. - Обработка пропущенных значений при чтении:
na_values,keep_default_na. - Обработка больших файлов с помощью
chunksize. - Запись данных с помощью
df.to_csv().
- Чтение с помощью
- Работа с JSON:
- Чтение (
pd.read_json()) и запись (df.to_json()). - Параметр
orientдля контроля структуры JSON. - Получение JSON-данных из веб-источников по URL с помощью библиотеки
requests.
- Чтение (
- Чтение HTML и XML:
- Чтение таблиц с веб-страниц с помощью
pd.read_html(). - Чтение данных из XML-файлов (
pd.read_xml()или ручной парсинг сlxml).
- Чтение таблиц с веб-страниц с помощью
- Бинарные форматы: Pickle и HDF5:
- Работа с Excel:
- Чтение листов из
.xlsxфайлов с помощьюpd.read_excel()(sheet_name,header). - Запись одного или нескольких
DataFrameв один Excel-файл с помощьюpd.ExcelWriter.
- Чтение листов из
- Работа с базами данных:
- Чтение данных из БД с помощью
pd.read_sql()и библиотекиSQLAlchemy. - Запись
DataFrameв SQL-таблицу с помощьюdf.to_sql()и управление существующими таблицами (if_exists).
- Чтение данных из БД с помощью
Этот раздел посвящен ключевым техникам предобработки данных, которые необходимы для подготовки данных к анализу и моделированию.
- Работа с пропущенными значениями:
- Обнаружение пропусков:
.isnull(),.notnull(). - Удаление пропусков:
.dropna()с параметрамиaxis,how,thresh. - Заполнение пропусков:
.fillna()со значениями, словарями, методами (ffill,bfill) и статистиками (.mean()).
- Обнаружение пропусков:
- Удаление дубликатов:
- Обнаружение дублей:
.duplicated(). - Удаление дублей:
.drop_duplicates()с параметрамиsubsetиkeep.
- Обнаружение дублей:
- Преобразование данных:
- Замена значений:
.replace(). - Переименование индексов и столбцов:
.rename(),.map(). - Применение функций к данным:
.map().
- Замена значений:
- Дискретизация и группировка:
- Обнаружение и обработка выбросов:
- Идентификация с помощью
.describe()и булевых масок. - Замена или ограничение выбросов с помощью
.clip(). - Перемешивание и случайная выборка:
np.random.permutation(),.take(),.sample().
- Идентификация с помощью
- Создание фиктивных переменных (One-Hot Encoding):
- Автоматическое создание с помощью
pd.get_dummies(). - Создание для ячеек с несколькими категориями с помощью
.str.get_dummies().
- Автоматическое создание с помощью
- Векторизованные строковые операции:
- Использование accessor'а
.strдля безопасной работы со строками. - Методы
.str.replace(),.str.contains(),.str.startswith(),.str.upper()и другие.
- Использование accessor'а
Вы можете свободно просматривать файлы прямо в браузере или скачать репозиторий к себе на компьютер для локального доступа.
Для того чтобы скачать репозиторий с помощью git, вам сначала нужно его установить.
-
Установите Git: Скачайте и установите его с официального сайта git-scm.com. Или в командной строке:
winget install --id Git.Git -e --source winget
-
Клонируйте репозиторий: Откройте терминал (командную строку), перейдите в папку, куда хотите сохранить проект, и выполните команду:
git clone https://github.com/Nickname-is-not-avaliable/Pandas_lections
Если вы заметили ошибку, опечатку или у вас есть предложение, как улучшить конспект, — смело создавайте Issue или Pull Request. Буду рад любой помощи.