Перед вами авторитетный справочник по переформатированию, очистке и обработке наборов данных на Python. Третье издание, переработанное с учетом версий Python 3.10 и pandas 1.4, содержит практические примеры, демонстрирующие эффективное решение широкого круга задач анализа данных. По ходу дела вы узнаете о последних версиях pandas, NumPy и Jupyter.
Книга принадлежит перу Уэса Маккинни, создателя библиотеки pandas, и может служить практическим современным руководством по инструментарию науки о данных на Python. Она идеально подойдет как аналитикам, только начинающим осваивать Python, так и программистам на Python, еще незнакомым с наукой о данных и научными приложениями. Файлы данных и прочие материалы к книге находятся в репозитории на GitHub и на сайте издательства dmkpress.com.
Author(s): Уэс Маккинни
Edition: 3
Publisher: ДМК Пресс
Year: 2023
Language: Russian
Commentary: Publisher's PDF
Pages: 536
City: М.
Tags: Data Analysis; Programming; Python; Data Visualization; Data Aggregation; scikit-learn; Data Cleaning; NumPy; matplotlib; pandas; Jupyter; Data Wrangling; SciPy; Seaborn; Anaconda; Time Series Analysis
Об авторе
Об иллюстрации на обложке
Предисловие от издательства
Предисловие
Графические выделения
О примерах кода
Как с нами связаться
Благодарности
Глава 1
Предварительные сведения
1.1. О чем эта книга?
Какого рода данные?
1.2. Почему именно Python?
Python как клей
Решение проблемы «двух языков»
Недостатки Python
1.3. Необходимые библиотеки для Python
NumPy
pandas
matplotlib
IPython и Jupyter
SciPy
scikit-learn
statsmodels
1.4. Установка и настройка
Miniconda в Windows
GNU/Linux
Miniconda в macOS
Установка необходимых пакетов
Интегрированные среды разработки (IDE)
1.5. Сообщество и конференции
1.6. Структура книги
Примеры кода
Данные для примеров
Соглашения об импорте
Глава 2
Основы языка Python, IPython и Jupyter-блокноты
2.1. Интерпретатор Python
2.2. Основы IPython
Запуск оболочки IPython
Запуск Jupyter-блокнота
Завершение по нажатии клавиши Tab
Интроспекция
2.3. Основы языка Python
Семантика языка
Скалярные типы
Поток управления
2.4. Заключение
Глава 3
Встроенные структуры данных, функции и файлы
3.1. Структуры данных и последовательности
Кортеж
Список
Словарь
Множество
Встроенные функции последовательностей
Списковое, словарное и множественное включения
3.2. Функции
Пространства имен, области видимости и локальные функции
Возврат нескольких значений
Функции являются объектами
Анонимные (лямбда) функции
Генераторы
Обработка исключений
3.3. Файлы и операционная система
Байты и Unicode в применении к файлам
3.4. Заключение
Глава 4
Основы NumPy: массивы и векторные вычисления
4.1. NumPy ndarray: объект многомерного массива
Создание ndarray
Тип данных для ndarray
Арифметические операции с массивами NumPy
Индексирование и вырезание
Булево индексирование
Прихотливое индексирование
Транспонирование массивов и перестановка осей
4.2. Генерирование псевдослучайных чисел
4.3. Универсальные функции: быстрые поэлементные операции над массивами
4.4. Программирование на основе массивов
Запись логических условий в виде операций с массивами
Математические и статистические операции
Методы булевых массивов
Сортировка
Устранение дубликатов и другие теоретико-множественные операции
4.5. Файловый ввод-вывод массивов
4.6. Линейная алгебра
4.7. Пример: случайное блуждание
Моделирование сразу нескольких случайных блужданий
4.8. Заключение
Глава 5
Первое знакомство с pandas
5.1. Введение в структуры данных pandas
Объект Series
Объект DataFrame
Индексные объекты
5.2. Базовая функциональность
Переиндексация
Удаление элементов из оси
Доступ по индексу, выборка и фильтрация
Арифметические операции и выравнивание данных
Применение функций и отображение
Сортировка и ранжирование
Индексы по осям с повторяющимися значениями
5.3. Редукция и вычисление описательных статистик
Корреляция и ковариация
Уникальные значения, счетчики значений и членство
5.4. Заключение
Глава 6
Чтение и запись данных, форматы файлов
6.1. Чтение и запись данных в текстовом формате
Чтение текстовых файлов порциями
Вывод данных в текстовом формате
Обработка данных в других форматах с разделителями
Данные в формате JSON
XML и HTML: разбор веб-страниц
6.2. Двоичные форматы данных
Формат HDF5
6.3. Взаимодействие с HTML и Web API
6.4. Взаимодействие с базами данных
6.5. Заключение
Глава 7
Очистка и подготовка данных
7.1. Обработка отсутствующих данных
Фильтрация отсутствующих данных
Восполнение отсутствующих данных
7.2. Преобразование данных
Устранение дубликатов
Преобразование данных с помощью функции или отображения
Замена значений
Переименование индексов осей
Дискретизация и группировка по интервалам
Обнаружение и фильтрация выбросов
Перестановки и случайная выборка
Вычисление индикаторных переменных
7.3. Расширение типов данных
7.4. Манипуляции со строками
Встроенные методы строковых объектов
Регулярные выражения
Строковые функции в pandas
7.5. Категориальные данные
Для чего это нужно
Расширенный тип Categorical в pandas
Вычисления с объектами Categorical
Категориальные методы
7.6. Заключение
Глава 8
Переформатирование данных: соединение, комбинирование и изменение формы
8.1. Иерархическое индексирование
Переупорядочение и уровни сортировки
Сводная статистика по уровню
Индексирование столбцами DataFrame
8.2. Комбинирование и слияние наборов данных
Слияние объектов DataFrame как в базах данных
Соединение по индексу
Конкатенация вдоль оси
Комбинирование перекрывающихся данных
8.3. Изменение формы и поворот
Изменение формы с помощью иерархического индексирования
Поворот из «длинного» в «широкий» формат
Поворот из «широкого» в «длинный» формат
8.4. Заключение
Глава 9
Построение графиков и визуализация
9.1. Краткое введение в API библиотеки matplotlib
Рисунки и подграфики
Цвета, маркеры и стили линий
Риски, метки и надписи
Аннотации и рисование в подграфике
Сохранение графиков в файле
Конфигурирование matplotlib
9.2. Построение графиков с помощью pandas и seaborn
Линейные графики
Столбчатые диаграммы
Гистограммы и графики плотности
Диаграммы рассеяния
Фасетные сетки и категориальные данные
9.3. Другие средства визуализации для Python
9.4. Заключение
Глава 10
Агрегирование данных и групповые операции
10.1. Как представлять себе групповые операции
Обход групп
Выборка столбца или подмножества столбцов
Группировка с помощью словарей и объектов Series
Группировка с помощью функций
Группировка по уровням индекса
10.2. Агрегирование данных
Применение функций, зависящих от столбца, и нескольких функций
Возврат агрегированных данных без индексов строк
10.3. Метод apply: общий принцип разделения–применения–объединения
Подавление групповых ключей
Квантильный и интервальный анализы
Пример: подстановка зависящих от группы значений вместо отсутствующих
Пример: случайная выборка и перестановка
Пример: групповое взвешенное среднее и корреляция
Пример: групповая линейная регрессия
10.4. Групповые преобразования и «развернутая» группировка
10.5. Сводные таблицы и перекрестная табуляция
Перекрестная табуляция: crosstab
10.5. Заключение
Глава 11
Временные ряды
11.1. Типы данных и инструменты, относящиеся к дате и времени
Преобразование между строкой и datetime
11.2. Основы работы с временными рядами
Индексирование, выборка, подмножества
Временные ряды с неуникальными индексами
11.3. Диапазоны дат, частоты и сдвиг
Генерирование диапазонов дат
Частоты и смещения дат
Сдвиг данных (с опережением и с запаздыванием)
11.4. Часовые пояса
Локализация и преобразование
Операции над объектами Timestamp с учетом часового пояса
Операции над датами из разных часовых поясов
11.5. Периоды и арифметика периодов
Преобразование частоты периода
Квартальная частота периода
Преобразование временных меток в периоды и обратно
Создание PeriodIndex из массивов
11.6. Передискретизация и преобразование частоты
Понижающая передискретизация
Повышающая передискретизация и интерполяция
Передискретизация периодов
Групповая передискретизация по времени
11.7. Скользящие оконные функции
Экспоненциально взвешенные функции
Бинарные скользящие оконные функции
Скользящие оконные функции, определенные пользователем
11.8. Заключение
Глава 12
Введение в библиотеки моделирования на Python
12.1. Интерфейс между pandas и кодом модели
12.2. Описание моделей с помощью Patsy
Преобразование данных в формулах Patsy
Категориальные данные и Patsy
12.3. Введение в statsmodels
Оценивание линейных моделей
Оценивание процессов с временными рядами
12.4. Введение в scikit-learn
12.5. Заключение
Глава 13
Примеры анализа данных
13.1. Набор данных Bitly с сайта 1.usa.gov
Подсчет часовых поясов на чистом Python
Подсчет часовых поясов с помощью pandas
13.2. Набор данных MovieLens 1M
Измерение несогласия в оценках
13.3. Имена, которые давали детям в США за период с 1880 по 2010 год
Анализ тенденций в выборе имен
13.4. База данных о продуктах питания министерства сельского хозяйства США
13.5. База данных Федеральной избирательной комиссии
Статистика пожертвований по роду занятий и месту работы
Распределение суммы пожертвований по интервалам
Статистика пожертвований по штатам
13.6. Заключение
Приложение A
Дополнительные сведения о библиотеке NumPy
A.1. Внутреннее устройство объекта ndarray
Иерархия типов данных в NumPy
A.2. Дополнительные манипуляции с массивами
Изменение формы массива
Упорядочение элементов массива в C и в Fortran
Конкатенация и разбиение массива
Эквиваленты прихотливого индексирования: функции take и put
A.3. Укладывание
Укладывание по другим осям
Установка элементов массива с помощью укладывания
A.4. Дополнительные способы использования универсальных функций
Методы экземпляра u-функций
Написание новых u-функций на Python
A.5. Структурные массивы и массивы записей
Вложенные типы данных и многомерные поля
Зачем нужны структурные массивы?
A.6. Еще о сортировке
Косвенная сортировка: методы argsort и lexsort
Альтернативные алгоритмы сортировки
Частичная сортировка массивов
Метод numpy.searchsorted: поиск элементов в отсортированном массиве
A.7. Написание быстрых функций для NumPy с помощью Numba
Создание пользовательских объектов numpy.ufunc с помощью Numba
A.8. Дополнительные сведения о вводе-выводе массивов
Файлы, отображенные на память
HDF5 и другие варианты хранения массива
A.9. Замечания о производительности
Важность непрерывной памяти
Приложение B
Еще о системе IPython
B.1. Комбинации клавиш
B.2. О магических командах
Команда %run
Исполнение кода из буфера обмена
B.3. История команд
Поиск в истории команд и повторное выполнение
Входные и выходные переменные
B.4. Взаимодействие с операционной системой
Команды оболочки и псевдонимы
Система закладок на каталоги
B.5. Средства разработки программ
Интерактивный отладчик
Хронометраж программы: %time и %timeit
Простейшее профилирование: %prun и %run -p
Построчное профилирование функции
B.6. Советы по продуктивной разработке кода с использованием IPython
Перезагрузка зависимостей модуля
Советы по проектированию программ
B.7. Дополнительные возможности IPython
Профили и конфигурирование
B.8. Заключение
Предметный указатель