Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Python и анализ данных

Покупка
Артикул: 680760.04.99
К покупке доступен более свежий выпуск Перейти
Второе издание этой книги дает современное практическое введение в разработку научных приложений на Python, ориентированных на обработку данных. Код переписан под версию Python 3.6, добавлены сведения о последних версиях библиотек pandas, NumPy, IPython и Jupyter. Описаны те части языка Python и библиотеки для него, которые необходимы для эффективного решения широкого круга аналитических задач: интерактивная оболочка IPython и Jupyter-блокноты, библиотеки NumPy и pandas, библиотека для визуализации данных matplotlib и др. Издание подойдет как аналитикам, только начинающим осваивать обработку данных, так и опытным программистам на Python, еще не знакомым с научными приложениями.
Маккинни, У. Python и анализ данных : практическое пособие / У. Маккинни ; пер. с анг. А. А. Слинкина. - 2-е изд. - Москва : ДМК Пресс, 2020. - 540 с. - ISBN 978-5-97060-590-5. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2012523 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Python и анализ данных

Уэс Маккини

Python for Data Analysis

Wes McKinney

Data Wrangling with Pandas, NumPy,  
and IPython

SECOND EDITION

Beijing • Boston • Farnham • Sebastopol • Tokyo 

Python и анализ данных

Москва, 2020

Уэс Маккини

Первичная обработка данных  
с применением pandas, NumPy и IPython

ВТОРОЕ ИЗДАНИЕ

УДК 004.438Python:004.6
ББК 32.973.22
 
М15

 
Маккини У.
М15 Python и анализ данных / пер. с анг. А. А. Слинкина. – М.: ДМК Пресс, 
2020. – 540 с.: ил.

 
ISBN 978-5-97060-590-5

Второе издание этой книги дает современное практическое введение в разработку научных приложений на Python, ориентированных на обработку данных. 
Код переписан под версию Python 3.6, добавлены сведения о последних версиях 
библиотек pandas, NumPy, IPython и Jupyter.
Описаны те части языка Python и библиотеки для него, которые необходимы 
для эффективного решения широкого круга аналитических задач: интерактивная оболочка IPython и Jupyter-блокноты, библиотеки NumPy и pandas, библиотека для визуализации данных matplotlib и др.
Издание подойдет как аналитикам, только начинающим осваивать обработку 
данных, так и опытным программистам на Python, еще не знакомым с научными 
приложениями.

 
УДК 004.438Python:004.6
 
ББК 32.973.22

Authorized Russian translation of the English edition of Python for Data Analysis, 2nd edition. 
ISBN 9781491957660 © 2018 William McKinney.
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or 
controls all rights to publish and sell the same.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

ISBN 978-1-491-95766-0 (анг.) 
Copyrigth © 2018 William McKinney

ISBN 978-5-97060-590-5 (рус.) 
©  Оформление, издание, перевод, 
ДМК Пресс, 2020

Содержание

Предисловие ........................................................................................................................................................14

Об авторе ................................................................................................................................................................20

Об иллюстрации на обложке .................................................................................................................21

Глава 1. Предварительные сведения ..............................................................................................22

1.1. 
О чем эта книга? ......................................................................................................................................22
Какого рода данные? ............................................................................................................................22
1.2. 
Почему именно Python?......................................................................................................................23
Python как клей ........................................................................................................................................23
Решение проблемы «двух языков» ..............................................................................................24
Недостатки Python .................................................................................................................................24
1.3. 
Необходимые библиотеки для Python ......................................................................................25
NumPy ............................................................................................................................................................25
pandas.............................................................................................................................................................26
matplotlib .....................................................................................................................................................27
IPython и Jupyter ......................................................................................................................................27
SciPy ................................................................................................................................................................28
scikit-learn....................................................................................................................................................28
statsmodels ..................................................................................................................................................29
1.4. 
Установка и настройка .........................................................................................................................30
Windows ........................................................................................................................................................30
Apple OS X ...................................................................................................................................................30
GNU/Linux ....................................................................................................................................................31
Установка или обновление Python-пакетов ...........................................................................31

Содержание

Python 2 и Python 3 ...............................................................................................................................32
Интегрированные среды разработки (IDE) .............................................................................32
1.5. 
Сообщество и конференции ............................................................................................................33
1.6. 
Структура книги ........................................................................................................................................34
Примеры кода ...........................................................................................................................................34
Данные для примеров .........................................................................................................................35
Соглашения об импорте ......................................................................................................................35
Жаргон ...........................................................................................................................................................35

Глава 2. Основы языка Python, IPython и Jupyter-блокноты .......................................36

2.1. 
Интерпретатор Python .........................................................................................................................37
2.2. 
Основы IPython ........................................................................................................................................38
Запуск оболочки IPython....................................................................................................................38
Запуск Jupyter-блокнота .....................................................................................................................39
Завершение по нажатии клавиши Tab ......................................................................................42
Интроспекция ............................................................................................................................................43
Команда %run ............................................................................................................................................45
Исполнение кода из буфера обмена ..........................................................................................46
Комбинации клавиш .............................................................................................................................47
О магических командах ......................................................................................................................48
Интеграция с matplotlib ......................................................................................................................50
2.3. 
Основы языка Python ...........................................................................................................................51
Семантика языка ......................................................................................................................................51
Скалярные типы .......................................................................................................................................59
Поток управления ...................................................................................................................................66

Глава 3. Встроенные структуры данных, функции и файлы ........................................71

3.1. 
Структуры данных и последовательности ...............................................................................71
Кортеж ............................................................................................................................................................71
Список ............................................................................................................................................................74
Встроенные функции последовательностей ..........................................................................79
Словарь ..........................................................................................................................................................81
Множество ...................................................................................................................................................85
Списковое, словарное и множественное включения .......................................................87
3.2. 
Функции ........................................................................................................................................................89
Пространства имен, области видимости и локальные функции ...............................90
Возврат нескольких значений ........................................................................................................91
Функции являются объектами .........................................................................................................91
Анонимные (лямбда) функции ........................................................................................................93
Каррирование: фиксирование части аргументов ...............................................................94
Генераторы ..................................................................................................................................................94
Обработка исключений .......................................................................................................................97

Содержание

3.3. 
Файлы и операционная система ................................................................................................100
Байты и Unicode в применении к файлам ...........................................................................102
3.4. 
Заключение .............................................................................................................................................104

Глава 4. Основы NumPy: массивы и векторные вычисления ..................................105

4.1. 
NumPy ndarray: объект многомерного массива ................................................................107
Создание ndarray ..................................................................................................................................108
Тип данных для ndarray ...................................................................................................................110
Арифметические операции с массивами NumPy ............................................................113
Индексирование и вырезание .....................................................................................................114
Булево индексирование ..................................................................................................................119
Прихотливое индексирование ....................................................................................................121
Транспонирование массивов и перестановка осей ....................................................... 123
4.2. 
Универсальные функции: быстрые поэлементные операции  
над массивами .......................................................................................................................................125
4.3. 
Программирование с применением массивов .................................................................127
Запись логических условий в виде операций с массивами ...................................... 129
Математические и статистические операции ....................................................................131
Методы булевых массивов .............................................................................................................132
Сортировка ...............................................................................................................................................133
Устранение дубликатов и другие теоретико-множественные операции.......... 134
4.4. 
Файловый ввод-вывод массивов ...............................................................................................135
4.5. 
Линейная алгебра ................................................................................................................................136
4.6. 
Генерация псевдослучайных чисел ...........................................................................................138
4.7. 
Пример: случайное блуждание ...................................................................................................139
Моделирование сразу нескольких случайных блужданий ........................................141
4.8. 
Заключение .............................................................................................................................................142

Глава 5. Первое знакомство с pandas ...........................................................................................143

5.1. 
Введение в структуры данных pandas ....................................................................................144
Объект Series ...........................................................................................................................................144
Объект DataFrame ................................................................................................................................148
Индексные объекты ............................................................................................................................154
5.2. 
Базовая функциональность ...........................................................................................................156
Переиндексация ...................................................................................................................................156
Удаление элементов из оси ...........................................................................................................159
Доступ по индексу, выборка и фильтрация .........................................................................161
Целочисленные индексы .................................................................................................................165
Арифметические операции и выравнивание данных .................................................. 166
Применение функций и отображение ....................................................................................172
Сортировка и ранжирование ........................................................................................................174
Индексы по осям с повторяющимися значениями .........................................................177

Содержание

5.3. 
Редукция и вычисление описательных статистик............................................................179
Корреляция и ковариация ..............................................................................................................181
Уникальные значения, счетчики значений и членство .................................................183
5.4. 
Заключение .............................................................................................................................................186

Глава 6. Чтение и запись данных, форматы файлов .......................................................187

6.1. 
Чтение и запись данных в текстовом формате .................................................................187
Чтение текстовых файлов порциями .......................................................................................193
Вывод данных в текстовом формате .......................................................................................195
Обработка данных в формате с разделителями ..............................................................196
Данные в формате JSON ..................................................................................................................198
XML и HTML: разбор веб-страниц.............................................................................................200
6.2. 
Двоичные форматы данных ..........................................................................................................203
Формат HDF5 ..........................................................................................................................................204
Чтение файлов Microsoft Excel ....................................................................................................206
6.3. 
Взаимодействие с HTML и Web API ..........................................................................................207
6.4. 
Взаимодействие с базами данных ............................................................................................209
6.5. 
Заключение .............................................................................................................................................210

Глава 7. Очистка и подготовка данных .......................................................................................211

7.1. 
Обработка отсутствующих данных ...........................................................................................211
Фильтрация отсутствующих данных ........................................................................................213
Восполнение отсутствующих данных ......................................................................................215
7.2. 
Преобразование данных.................................................................................................................217
Устранение дубликатов ....................................................................................................................217
Преобразование данных с помощью функции или отображения ........................ 219
Замена значений ..................................................................................................................................221
Переименование индексов осей ................................................................................................222
Дискретизация и раскладывание ..............................................................................................223
Обнаружение и фильтрация выбросов ..................................................................................226
Перестановки и случайная выборка ........................................................................................228
Вычисление индикаторных переменных ..............................................................................229
7.3. 
Манипуляции со строками .............................................................................................................232
Методы строковых объектов .........................................................................................................232
Регулярные выражения ....................................................................................................................234
Векторные строковые функции в pandas .............................................................................237
7.4. 
Заключение .............................................................................................................................................240

Глава 8. Переформатирование данных: соединение,  
комбинирование и изменение формы .......................................................................................241

8.1. 
Иерархическое индексирование ...............................................................................................241
Переупорядочение и уровни сортировки ............................................................................244

Содержание

Сводная статистика по уровню ...................................................................................................245
Индексирование с помощью столбцов DataFrame ........................................................ 246
8.2. 
Комбинирование и слияние наборов данных ...................................................................247
Слияние объектов DataFrame как в базах данных ......................................................... 247
Соединение по индексу ...................................................................................................................252
Конкатенация вдоль оси ..................................................................................................................256
Комбинирование перекрывающихся данных ....................................................................261
8.3. 
Изменение формы и поворот ......................................................................................................263
Изменение формы с помощью иерархического индексирования ....................... 263
Поворот из «длинного» в «широкий» формат ...................................................................266
Поворот из «широкого» в «длинный» формат ..................................................................270
8.4. 
Заключение .............................................................................................................................................272

Глава 9. Построение графиков и визуализация ..................................................................273

9.1. 
Краткое введение в API библиотеки matplotlib ............................................................... 274
Рисунки и подграфики ......................................................................................................................275
Цвета, маркеры и стили линий ....................................................................................................278
Риски, метки и надписи ....................................................................................................................281
Аннотации и рисование в подграфике ...................................................................................284
Сохранение графиков в файле ....................................................................................................286
Конфигурирование matplotlib .....................................................................................................288
9.2. 
Построение графиков с помощью pandas и seaborn ....................................................288
Линейные графики ..............................................................................................................................289
Столбчатые диаграммы ....................................................................................................................291
Гистограммы и графики плотности ...........................................................................................296
Диаграммы рассеяния .......................................................................................................................299
Фасетные сетки и категориальные данные .........................................................................301
9.3. 
Другие средства визуализации для Python .........................................................................303
9.4. 
Заключение .............................................................................................................................................303

Глава 10. Агрегирование данных и групповые операции ..........................................304

10.1. Механизм GroupBy ..............................................................................................................................305
Обход групп .............................................................................................................................................308
Группировка с помощью словарей и объектов Series...................................................311
Группировка с помощью функций .............................................................................................312
Группировка по уровням индекса .............................................................................................313
10.2. Агрегирование данных .....................................................................................................................313
Применение функций, зависящих от столбца и нескольких функций ............... 315
Возврат агрегированных данных без индексов строк .................................................319
10.3. Метод apply: часть общего принципа  
разделения-применения-объединения..................................................................................319
Подавление групповых ключей ..................................................................................................322

Содержание

Квантильный и интервальный анализы .................................................................................322
Пример: подстановка зависящих от группы значений вместо  
отсутствующих .......................................................................................................................................324
Пример: случайная выборка и перестановка ....................................................................326
Пример: групповое взвешенное среднее и корреляция ............................................328
Пример: групповая линейная регрессия ...............................................................................330
10.4. Сводные таблицы и перекрестное табулирование ......................................................... 331
Таблицы сопряженности ..................................................................................................................334
10.5. Заключение .............................................................................................................................................335

Глава 11. Временные ряды ...................................................................................................................336

11.1. Типы данных и инструменты, относящиеся к дате и времени ................................. 337
Преобразование между строкой и datetime ......................................................................338
11.2. Основы работы с временными рядами .................................................................................341
Индексирование, выборка, подмножества ..........................................................................342
Временные ряды с неуникальными индексами ...............................................................345
11.3. Диапазоны дат, частоты и сдвиг..................................................................................................346
Генерация диапазонов дат .............................................................................................................347
Частоты и смещения дат ..................................................................................................................349
Сдвиг данных (с опережением и с запаздыванием) ......................................................351
11.4. Часовые пояса ........................................................................................................................................354
Локализация и преобразование.................................................................................................355
Операции над объектами Timestamp с учетом часового пояса ............................. 357
Операции между датами из разных часовых поясов ...................................................358
11.5. Периоды и арифметика периодов ............................................................................................359
Преобразование частоты периода............................................................................................360
Квартальная частота периода ......................................................................................................362
Преобразование временных меток в периоды и обратно ........................................363
Создание PeriodIndex из массивов ...........................................................................................365
11.6. Передискретизация и преобразование частоты ..............................................................367
Понижающая передискретизация .............................................................................................369
Повышающая передискретизация и интерполяция .......................................................371
Передискретизация периодов .....................................................................................................373
11.7. Скользящие оконные функции ....................................................................................................374
Экспоненциально взвешенные функции ..............................................................................378
Бинарные скользящие оконные функции ............................................................................379
Скользящие оконные функции, определенные пользователем ............................. 381
11.8. Заключение .............................................................................................................................................382

Глава 12. Дополнительные сведения о библиотеке NumPy .....................................383

12.1. Категориальные данные ..................................................................................................................383
Для чего это нужно .............................................................................................................................383

К покупке доступен более свежий выпуск Перейти