Python и анализ данных
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Маккинни Уэс
Перевод:
Слинкин Алексей Александрович
Год издания: 2015
Кол-во страниц: 482
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-315-4
Артикул: 680760.02.99
К покупке доступен более свежий выпуск
Перейти
Книгу можно рассматривать как современное практическое введение в разработку научных приложений на Python, ориентированных на обработку данных. Описаны те части языка Python и библиотеки для него, которые необходимы для эффективного решения широкого круга аналитических задач: интерактивная оболочка IPython, библиотеки NumPy и pandas, библиотека для визуализации данных matplotlib и др. Издание идеально подойдет как аналитикам, только начинающим осваивать обработку данных, так и опытным программистам на Python, еще не знакомым с научными приложениями.
Скопировать запись
Python и анализ данных. Первичная обработка данных с применением pandas, NumPy и Jupiter, 2023, 680760.05.99
Python и анализ данных, 2020, 680760.04.99
Фрагмент текстового слоя документа размещен для индексирующих роботов
Уэс Маккинни Python и анализ данных Книгу можно рассматривать как современное практическое введение в разработку научных приложений на Python, ориентированных на обработку данных. Описаны те части языка Python и библиотеки для него, которые необходимы для эффективного решения широкого круга аналитических задач: интерактивная оболочка IPython, библиотеки NumPy и pandas, библиотека для визуализации данных matplotlib и др. Издание принадлежит перу Уэса Маккинни, основного автора библиотеки pandas, и содержит великое множество практических примеров. Оно идеально подойдет как аналитикам, только начинающим осваивать, так и опытным программистам на Python, еще не знакомым с научными приложениями. Интернет-магазин: www.dmkpress.com Книга – почтой: orders@alians-kniga.ru Оптовая продажа: “Альянс-книга” тел.(499)782-38-89 books@alians-kniga.ru www.дмк.рф В книге рассматриваются следующие темы: • работа с IPython — интерактивной оболочкой, которая может использоваться в начале разработки; • основы и более сложные средства библиотеки NumPy (Numerical Python); • введение в средства анализа данных в библиотеке pandas; • использование высокопроизводительных инструментов для загрузки, очистки, преобразования, слияния и изменения формы данных; • создание различных графиков и интерактивная визуализация с помощью библиотеки matplotlib; • применение встроенного в pandas механизма группировки для формирования продольных и поперечных срезов, а также агрегирования наборов данных; • временные ряды с результатами измерений в конкретные моменты времени, за фиксированные периоды или произвольные интервалы; • методы решения задач, возникающих в веб-аналитике, социальных науках, финансах и экономике, проиллюстрированные подробными примерами. 9 785970 603154 ISBN 978-5-97060-315-4 Python и анализ данных
Уэс Маккинли Python и анализ данных
Python for Data Analysis Wes McKinney Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo
Москва, 2015 Python и анализ данных Уэс Маккинли
УДК 004.438Python:004.6 ББК 32.973.22 М15 М15 Уэс Маккинли Python и анализ данных / Пер. с англ. Слинкин А. А. – М.: ДМК Пресс, 2015. – 482 с.: ил. ISBN 978-5-97060-315-4 Книгу можно рассматривать как современное практическое введение в разработку научных приложений на Python, ориентированных на обработку данных. Описаны те части языка Python и библиотеки для него, которые необходимы для эффективного решения широкого круга аналитических задач: интерактивная оболочка IPython, библиотеки NumPy и pandas, библиотека для визуализации данных matplotlib и др. Издание идеально подойдет как аналитикам, только начинающим осва ивать обработку данных, так и опытным программистам на Python, еще не знакомым с научными приложениями. УДК 004.438Python:004.6 ББК 32.973.22 Original English language edition published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. Copyright © 2013 O’Reilly Media, Inc. Russianlanguage edition copyright © 2015 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-449-31979-3 (англ.) Copyright © 2013 Wes McKinney. ISBN 978-5-97060-315-4 (рус.) © Оформление, перевод на русский язык, издание, ДМК Пресс, 2015
оглавление Предисловие..................................................................12 Графические выделения ....................................................................... 12 Глава.1..Предварительные.сведения...................................13 О чем эта книга? ................................................................................... 13 Почему именно Python? ........................................................................ 14 Python как клей ............................................................................................. 14 Решение проблемы «двух языков» ................................................................ 15 Недостатки Python ....................................................................................... 15 Необходимые библиотеки для Python ........................................................... 16 NumPy .......................................................................................................... 16 pandas.......................................................................................................... 16 matplotlib ...................................................................................................... 17 IPython ......................................................................................................... 17 SciPy ............................................................................................................ 18 Установка и настройка .......................................................................... 18 Windows ....................................................................................................... 19 Apple OS X .................................................................................................... 21 GNU/Linux .................................................................................................... 22 Python 2 и Python 3 ....................................................................................... 23 Интегрированные среды разработки (IDE) ................................................... 24 Сообщество и конференции ................................................................. 24 Структура книги .................................................................................... 25 Примеры кода .............................................................................................. 25 Данные для примеров .................................................................................. 25 Соглашения об импорте ............................................................................... 25 Жаргон ......................................................................................................... 26 Благодарности ..................................................................................... 26 Глава.2..Первые.примеры.................................................28 Набор данных 1.usa.gov с сайта bit.ly .................................................... 28 Подсчет часовых поясов на чистом Python ................................................... 30 Подсчет часовых поясов с помощью pandas ................................................. 32 Набор данных MovieLens 1M ................................................................. 38 Измерение несогласия в оценках ................................................................. 42 Имена, которые давали детям в США за период с 1880 по 2010 год ...... 43 Анализ тенденций в выборе имен ................................................................. 48 Выводы и перспективы ......................................................................... 56
Оглавление Глава.3..IPython:.интерактивные.вычисления.и.среда. разработки.....................................................................57 Основы IPython ..................................................................................... 58 Завершение по нажатию клавиши Tab .......................................................... 59 Интроспекция .............................................................................................. 60 Команда %run .............................................................................................. 61 Исполнение кода из буфера обмена ............................................................. 63 Комбинации клавиш ..................................................................................... 64 Исключения и обратная трассировка ........................................................... 65 Магические команды.................................................................................... 66 Графическая консоль на базе Qt ................................................................... 68 Интеграция с matplotlib и режим pylab .......................................................... 68 История команд .................................................................................... 70 Поиск в истории команд и повторное выполнение ........................................ 70 Входные и выходные переменные ................................................................ 71 Протоколирование ввода-вывода ................................................................ 72 Взаимодействие с операционной системой ......................................... 73 Команды оболочки и псевдонимы ................................................................ 73 Система закладок на каталоги...................................................................... 75 Средства разработки программ ........................................................... 75 Интерактивный отладчик .............................................................................. 75 Хронометраж программы: %time и %timeit ................................................... 80 Простейшее профилирование: %prun и %run -p ........................................... 82 Построчное профилирование функции ........................................................ 83 HTML-блокнот в IPython ........................................................................ 86 Советы по продуктивной разработке кода с использованием IPython ... 86 Перезагрузка зависимостей модуля ............................................................ 87 Советы по проектированию программ ......................................................... 88 Дополнительные возможности IPython ................................................. 90 Делайте классы дружественными к IPython .................................................. 90 Профили и конфигурирование ..................................................................... 90 Благодарности ..................................................................................... 92 Глава.4..Основы.NumPy:.массивы.и.векторные.вычисления....93 NumPy ndarray: объект многомерного массива ..................................... 94 Создание ndarray ......................................................................................... 95 Тип данных для ndarray ................................................................................. 97 Операции между массивами и скалярами ...................................................100 Индексирование и вырезание .....................................................................100 Булево индексирование ..............................................................................104 Прихотливое индексирование .....................................................................107 Транспонирование массивов и перестановка осей ......................................108 Универсальные функции: быстрые поэлементные операции над массивами ...............................................................................................109 Обработка данных с применением массивов ...................................... 112 Запись логических условий в виде операций с массивами ..........................113
Оглавление Математические и статистические операции ..............................................115 Методы булевых массивов ..........................................................................116 Сортировка .................................................................................................117 Устранение дубликатов и другие теоретико-множественные операции.......118 Файловый ввод-вывод массивов ........................................................ 119 Хранение массивов на диске в двоичном формате ......................................119 Сохранение и загрузка текстовых файлов ...................................................120 Линейная алгебра ............................................................................... 121 Генерация случайных чисел ................................................................ 122 Пример: случайное блуждание ....................................................................123 Моделирование сразу нескольких случайных блужданий ............................125 Глава.5..Первое.знакомство.с.pandas................................127 Введение в структуры данных pandas ................................................. 128 Объект Series ..............................................................................................128 Объект DataFrame .......................................................................................131 Индексные объекты.....................................................................................137 Базовая функциональность................................................................. 139 Переиндексация .........................................................................................139 Удаление элементов из оси .........................................................................142 Доступ по индексу, выборка и фильтрация ..................................................143 Арифметические операции и выравнивание данных ...................................146 Применение функций и отображение ..........................................................150 Сортировка и ранжирование .......................................................................151 Индексы по осям с повторяющимися значениями .......................................154 Редукция и вычисление описательных статистик ................................ 155 Корреляция и ковариация ...........................................................................158 Уникальные значения, счетчики значений и членство ..................................160 Обработка отсутствующих данных ...................................................... 162 Фильтрация отсутствующих данных ............................................................163 Иерархическое индексирование ......................................................... 166 Уровни переупорядочения и сортировки .....................................................169 Сводная статистика по уровню ....................................................................170 Работа со столбцами DataFrame ..................................................................170 Другие возможности pandas ............................................................... 172 Доступ по целочисленному индексу ............................................................172 Структура данных Panel ...............................................................................173 Глава.6..Чтение.и.запись.данных,.форматы.файлов.............175 Чтение и запись данных в текстовом формате .................................... 175 Чтение текстовых файлов порциями ...........................................................181 Вывод данных в текстовом формате............................................................182 Ручная обработка данных в формате с разделителями ................................184 Данные в формате JSON .............................................................................186 XML и HTML: разбор веб-страниц ................................................................188 Разбор XML с помощью lxml.objectify ...........................................................190 Двоичные форматы данных .........................................................................192
Оглавление Взаимодействие с HTML и Web API ..............................................................194 Взаимодействие с базами данных ...................................................... 196 Чтение и сохранение данных в MongoDB .....................................................198 Глава.7..Переформатирование.данных:.очистка,. преобразование,.слияние,.изменение.формы....................199 Комбинирование и слияние наборов данных ...................................... 199 Слияние объектов DataFrame как в базах данных .........................................200 Слияние по индексу ....................................................................................204 Конкатенация вдоль оси ..............................................................................207 Комбинирование перекрывающихся данных ...............................................211 Изменение формы и поворот .............................................................. 212 Изменение формы с помощью иерархического индексирования ................213 Поворот из «длинного» в «широкий» формат ...............................................215 Преобразование данных ..................................................................... 217 Устранение дубликатов ...............................................................................217 Преобразование данных с помощью функции или отображения .................218 Замена значений.........................................................................................220 Переименование индексов осей .................................................................221 Дискретизация и раскладывание ................................................................222 Обнаружение и фильтрация выбросов ........................................................224 Перестановки и случайная выборка ............................................................226 Вычисление индикаторных переменных ......................................................227 Манипуляции со строками .................................................................. 229 Методы строковых объектов .......................................................................230 Регулярные выражения ...............................................................................232 Векторные строковые функции в pandas .....................................................235 Пример: база данных о продуктах питания министерства сельского хозяйства США ................................................................................... 237 Глава.8..Построение.графиков.и.визуализация...................244 Краткое введение в API библиотеки matplotlib ..................................... 245 Рисунки и подграфики .................................................................................246 Цвета, маркеры и стили линий ....................................................................249 Риски, метки и надписи ...............................................................................251 Аннотации и рисование в подграфике .........................................................254 Сохранение графиков в файле ....................................................................256 Конфигурирование matplotlib ......................................................................257 Функции построения графиков в pandas ............................................. 258 Линейные графики ......................................................................................258 Столбчатые диаграммы...............................................................................260 Гистограммы и графики плотности ..............................................................264 Диаграммы рассеяния ................................................................................266 Нанесение данных на карту: визуализация данных о землетрясении на Гаити .............................................................................................. 267 Инструментальная экосистема визуализации для Python ................... 273
Оглавление Chaco ..........................................................................................................274 mayavi .........................................................................................................274 Прочие пакеты ............................................................................................275 Будущее средств визуализации ..................................................................275 Глава.9..Агрегирование.данных.и.групповые.операции.........276 Механизм GroupBy ............................................................................. 277 Обход групп ................................................................................................280 Выборка столбца или подмножества столбцов ............................................281 Группировка с помощью словарей и объектов Series ...................................282 Группировка с помощью функций ................................................................284 Группировка по уровням индекса ................................................................284 Агрегирование данных ........................................................................ 285 Применение функций, зависящих от столбца, и нескольких функций ..........287 Возврат агрегированных данных в «неиндексированном» виде ...................289 Групповые операции и преобразования .............................................. 290 Метод apply: часть общего принципа разделения–применения– объединения ...............................................................................................292 Квантильный и интервальный анализ ..........................................................294 Пример: подстановка зависящих от группы значений вместо отсутствующих ............................................................................................296 Пример: случайная выборка и перестановка ...............................................297 Пример: групповое взвешенное среднее и корреляция...............................299 Пример: групповая линейная регрессия .....................................................301 Сводные таблицы и кросс-табуляция .................................................. 302 Таблицы сопряженности .............................................................................304 Пример: база данных федеральной избирательной комиссии за 2012 год ....305 Статистика пожертвований по роду занятий и месту работы .......................308 Распределение суммы пожертвований по интервалам ................................311 Статистика пожертвований по штатам ........................................................313 Глава.10..Временные.ряды..............................................316 Типы данных и инструменты, относящиеся к дате и времени .............. 317 Преобразование между строкой и datetime .................................................318 Основы работы с временными рядами ............................................... 321 Индексирование, выборка, подмножества ..................................................322 Временные ряды с неуникальными индексами ............................................324 Диапазоны дат, частоты и сдвиг .......................................................... 325 Генерация диапазонов дат ..........................................................................325 Частоты и смещения дат .............................................................................326 Сдвиг данных (с опережением и с запаздыванием) .....................................329 Часовые пояса .................................................................................... 331 Локализация и преобразование ..................................................................332 Операции над объектами Timestamp с учетом часового пояса ....................333 Операции между датами из разных часовых поясов ....................................334 Периоды и арифметика периодов ...............................................................335 Преобразование частоты периода ..............................................................336
К покупке доступен более свежий выпуск
Перейти