Python и анализ данных: Первичная обработка данных с применением pandas, NumPy и Jupiter

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Перед вами авторитетный справочник по переформатированию, очистке и обработке наборов данных на 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. Заключение
Предметный указатель