Обработка данных в Python. Основы работы с библиотекой Pandas
Покупка
Тематика:
Системы управления базами данных (СУБД)
Год издания: 2022
Кол-во страниц: 116
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7882-3164-8
Артикул: 809805.01.99
Рассмотрены основы анализа и обработки данных в Python с использованием библиотеки Pandas. Приведены примеры работы с объектами Series и Data-Frame: осуществление доступа к данным, внесение изменений в DataFrame, визуализация полученных результатов, а также сортировка, фильтрация и группировка данных. Для оценки уровня усвоения студентами пройденного материала предложены варианты самостоятельных работ.
Предназначено для бакалавров, обучающихся по направлениям подготовки 28.03.02 «Наноинженерия», 09.03.02 «Информационные системы и технологии», изучающих дисциплины «Обработка экспериментальных данных», «Алгоритмы и структуры данных», «Большие данные», «Теория информации, данные, знания», «Прикладная математика», «Вычислительная математика».
Подготовлено на кафедре информатики и прикладной математики.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.02: Информационные системы и технологии
- 28.03.02: Наноинженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации Казанский национальный исследовательский технологический университет А. Н. Титов, Р. Ф. Тазиева ОБРАБОТКА ДАННЫХ В PYTHON ОСНОВЫ РАБОТЫ С БИБЛИОТЕКОЙ PANDAS Учебно-методическое пособие Казань Издательство КНИТУ 2022
УДК 004.6(075) ББК 32.97я7 Т45 Печатается по решению редакционно-издательского совета Казанского национального исследовательского технологического университета Рецензенты: канд. пед. наук, доц. С. М. Куценко канд. экон. наук, доц. О. С. Семичева Т45 Титов А. Н. Обработка данных в Python. Основы работы с библиотекой Pandas : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань : Изд-во КНИТУ, 2022. – 116 с. ISBN 978-5-7882-3164-8 Рассмотрены основы анализа и обработки данных в Python с использовани ем библиотеки Pandas. Приведены примеры работы с объектами Series и DataFrame: осуществление доступа к данным, внесение изменений в DataFrame, визуализация полученных результатов, а также сортировка, фильтрация и группировка данных. Для оценки уровня усвоения студентами пройденного материала предложены варианты самостоятельных работ. Предназначено для бакалавров, обучающихся по направлениям подготовки 28.03.02 «Наноинженерия», 09.03.02 «Информационные системы и технологии», изучающих дисциплины «Обработка экспериментальных данных», «Алгоритмы и структуры данных», «Большие данные», «Теория информации, данные, знания», «Прикладная математика», «Вычислительная математика». Подготовлено на кафедре информатики и прикладной математики. ISBN 978-5-7882-3164-8 © Титов А. Н., Тазиева Р. Ф., 2022 © Казанский национальный исследовательский технологический университет, 2022 УДК 004.6(075) ББК 32.97я7
СОДЕРЖАНИЕ ВВЕДЕНИЕ....................................................................................................................4 1. СТРУКТУРА ДАННЫХ В PANDAS......................................................................6 1.1. Объект Series......................................................................................................6 1.1.1. Создание объекта Series ...........................................................................6 1.1.2. Свойства объекта Series ..........................................................................9 1.1.3. Работа с объектами Series ......................................................................9 1.2. Объект DataFrame............................................................................................13 1.2.1. Создание объекта DataFrame ................................................................14 1.2.2. Импорт данных в объект DataFrame и сохранение в файл................17 1.2.3. Вывод на экран содержимого объекта DataFrame.............................19 1.2.4. Атрибуты объекта DataFrame .............................................................22 2. ОПЕРАЦИИ С ОБЪЕКТОМ DATAFRAME........................................................27 2.1. Доступ к строкам и столбцам объекта DataFrame........................................27 2.2. Внесение изменений в объект DataFrame .....................................................30 2.2.1. Изменение содержимого объекта DataFrame .....................................31 2.2.2. Добавление новых записей и столбцов в объект DataFrame..............35 2.2.3. Удаление строк и столбцов....................................................................39 2.2.4. Разбивка и объединение объектов DataFrame .....................................43 2.3. Итерирование по элементам строки объекта DataFrame.............................46 2.4. Предварительный анализ и обработка данных.............................................50 2.5. Сортировка данных .........................................................................................56 2.6. Фильтрация данных.........................................................................................58 2.7. Группировка данных.......................................................................................63 3. ВИЗУАЛИЗАЦИЯ ДАННЫХ................................................................................82 3.1. Визуализация данных в библиотеке Pandas..................................................82 3.2. Визуализация данных в библиотеке Matplotlib............................................91 3.3. Визуализация данных в библиотеке Seaborn................................................94 Задания для самостоятельной работы студентов...................................................112 ЛИТЕРАТУРА...........................................................................................................115
В В Е Д Е Н И Е Для анализа данных Python является одним из наиболее востре бованных языков программирования. Во многом это обусловлено тем, что, несмотря на свою относительную простоту, он является в то же время и очень мощным средством, которое позволяет решать широкий круг возникающих на практике задач. Кроме того, для анализа данных в нем имеется достаточно много открытых библиотек. Одной из таких библиотек является Pandas, изначально приспособленная для обработки и первичного анализа данных. Разработка Pandas началась в 2008 году, и с тех пор эта библиотека активно развивается и приобрела огромную популярность. Фактически это основное решение для обработки и анализа данных на Python. Эта библиотека может использоваться и для решения других задач, связанных с работой с данными, например для обработки файлов. Pandas (название происходит от panel data – «панельные данные») – это высокоуровневая библиотека для обработки и анализа структурированных данных, которая является надстройкой другой библиотеки Python NumPy. Данная библиотека обладает средствами для решения практически любой типовой задачи, которая может возникнуть при работе с данными. При этом Pandas предоставляет возможность работать с огромными массивами данных самого разного формата и при этом делать это очень быстро. Это и файлы Excel, и текстовые файлы табличных данных, такие как txt, табличные данные web-страниц, данные в формате json, данные из СУБД и даже данные из буфера обмена. Pandas позволяет работать с файлами больших объемов (в десятки мегабайт и даже гигабайт) и создавать DataFrame данных из нескольких источников. Библиотека позволяет группировать данные, накладывать различные фильтры на данные, строить сводные таблицы, преобразовывать данные в файлы различных форматов и т. д. При этом существует возможность не только обрабатывать данные, но и визуализировать результаты в виде графиков, диаграмм, а также позволяет подключать для этих целей другие библиотеки, такие как Matplotlib и Seaborn. Pandas – это opensource-библиотека, исходный код которой раз мещен на GitHub в открытом доступе. Пользователи могут добавлять туда свой код: вносить пояснения, дополнять методы работы и обновлять разделы. Для работы потребуется компилятор C/C++ (программа,
которая переводит текст с языка программирования в машинный код) и среда разработки Python. В рамках данного учебно-методического пособия авторы поста вили перед собой цель: собрать имеющуюся информацию по работе в Pandas, переработать ее с учетом тех типов задач, которые решаются в преподаваемых авторами дисциплинах. Авторы надеются облегчить восприятие изложенного материала, снабдив пособие большим количеством примеров и пояснений к ним. Пособие включает в себя три главы. В первой главе рассматри ваются вопросы, связанные с началом работы в Pandas: методы создания объектов Series и DataFrame, их атрибуты, свойства и методы. Во второй главе рассмотрены операции с объектом DataFrame – доступ к элементам объекта, сортировка и фильтрация данных, изменение содержимого объекта DataFrame, добавление и удаление информации, объединение нескольких объектов DataFrame в один и разбивка их на несколько частей. Приведены примеры работы с большими объектами DataFrame. В третьей главе рассмотрены вопросы визуализации данных в библиотеке Pandas и библиотеках Matplotlib и Seaborn. Материал, изложенный в пособии, может быть использован при проведении лабораторных занятий по обработке экспериментальных данных, вычислительной и прикладной математике, алгоритмам и структурам данных.
1 . С Т Р У К Т У Р А Д А Н Н Ы Х В P A N D A S Основными структурами данных в Pandas являются объекты Se ries, DataFrame и Panel. Series – это маркированная одномерная структура данных, ее можно представить как таблицу с одной строкой. С Series можно работать как с обычным массивом (обращаться по номеру индекса), и как с ассоциированным массивом, когда можно использовать ключ для доступа к элементам данных. DataFrame представляет собой объект с табличной структурой данных. Каждый столбец DataFrame является структурой Series. Panel – это объект, имеющий структуру трехмерного массива, содержащего три оси. Первая ось называется items (ось 0). Каждый элемент данной оси – объект DataFrame. Вторая ось – major_axis: (ось 1), соответствует строкам каждого DataFrame. Последняя ось – minor_axis: (ось 2), соответствует столбцам каждого DataFrame1. В данном пособии будут рассмотрены только первые две струк туры данных – Series и DataFrame. 1.1. Объект Series 1.1.1. Создание объекта Series Создать объект типа Series можно, используя словари Python, списки Python, массивы из библиотеки NumPy – ndarray, скалярные величины. Конструктор класса Series выглядит следующим образом: pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False). Параметры конструктора класса следующие: data – набор данных, на базе которого будет построен Series. Данные могут быть представлены в виде списка, константы, массива NumPy, Dict и т. д.; 1Документация по модулю Python Pandas: сайт. URL: https://pythononline.ru/osnovy/python-pandas.
index – список меток, который будет использоваться для доступа к элементам Series. Длина списка должна быть равна длине data; dtype – объект numpy.dtype, распознающий тип данных; copy – используется для создания (при необходимости) копии массива данных (copy=True). В большинстве случаев используют только первые два парамет ра. Рассмотрим различные варианты создания объекта Series. Создать объект Series с использованием списков: import pandas as pd series_1 = pd.Series([8, 10, 16, 19, 59, 78],index=['Калмыкия', 'Карелия', 'Татарстан', 'Хакасия', 'Пермский_край', 'Санкт Петербург']) series_1 Объект series_1 состоит из названий (индексы) и кодов (значе ния) регионов РФ. Индекс находится слева, а значение элемента – справа. Если не задавать индексы элементов списка, Pandas автоматически создаст RangeIndex от 0 до N-1, где N – общее количество элементов списка: import pandas as pd series_1 = pd.Series([8, 10, 16, 19, 59, 78]) series_1 У значений объекта series_1 тип хранимых элементов соответ ствует int64, так как был создан объект из целочисленных значений. Создание Series из ndarray массива numpy: import pandas as pd import numpy as np
data = np.array(np.linspace(1,7,7)) serie_1= pd.Series(data, ['a', 'b', 'c', 'd', 'e','f','g']) serie_1 Можно всем элементам серии присвоить одно и то же значение: import pandas as pd series_2 = pd.Series(8, ['a', 'b', 'c']);series_2 Другой вариант решения задачи: series_2 = pd.Series("Red", ['a', 'b', 'c']) Создать серию можно, используя словарь: import pandas as pd series_1 = pd.Series({'Калмыкия':8, 'Карелия':10, 'Татарстан':16, 'Хакасия':19, 'Пермский_край':59, 'Санкт-Петербург':78}) series_1 Ключи (keys) из словаря ('Калмыкия', 'Карелия', … , 'Санкт Петербург') станут метками структуры series_1 (индексами), а значения (values) словаря (8, 10,…,78) – значениями в следующей структуре:
1.1.2. Свойства объекта Series Свойство index позволяет получить список имеющихся в серии индексов: import pandas as pd series_1 = pd.Series([8, 10, 16, 19, 59, 78],index=['Калмыкия', \ 'Карелия','Татарстан', 'Хакасия', 'Пермский_край', \ 'Санкт-Петербург']);series_1.index Тип данных элементов серии, размерность, количество столбцов и строк можем узнать с помощью соответствующих свойств: print(series_1.dtype) print(series_1.shape) print(series_1.ndim) print(series_1.size) 1.1.3. Работа с объектами Series Добавление и удаление элементов Series. К серии можно доба вить один или несколько элементов. Для добавления одного элемента необходимо указать его индекс и значение, например: series_1['Республика Коми']=10. Для добавления нескольких элементов необходимо воспользо ваться методом append(). Вначале создадим объект Series с двумя новыми элементами, а затем с помощью метода append() добавим этот объект к другому объекту типа Series. Например, добавим элементы series_2 к series_1: import pandas as pd series_1 = pd.Series([8, 10, 16, 19, 59, 78],index=['Калмыкия', \
'Карелия','Татарстан', 'Хакасия', 'Пермский_край', \ 'Санкт-Петербург']) series_2=pd.Series([10,13],index=['Республика Коми','Респуб лика Мордовия']) series_1= series_1.append(series_2, ignore_index=False); series_1 Методом drop можно удалить ненужные элементы: series_1.drop(labels=['Хакасия', 'Пермский_край']) Доступ к элементам объекта Series. Доступ к элементам объек та Series возможен по индексу элемента series_1['Хакасия'] в случае символьных индексов или по индексу элемента series_1[3], если индексом является целое число. Обратиться к элементам Series можно также с использованием команд .loc или .iloc. Команда .loc принимает в качестве параметра определенные метки индекса. Можно передать как один указатель, так и массив. Например, series_1.loc['Карелия']. Результат работы данной команды совпадает с результатом обращения series_1 ['Карелия'] и соответствует числу 10. Команда .iloc принимает на вход порядковые номера элементов Series. В качестве параметра можно передавать как одно число, так и массив чисел. Например: import pandas as pd series_1 = pd.Series([8, 10, 16, 19, 59, 78],index=['Калмыкия', 'Карелия', 'Татарстан', 'Хакасия', 'Пермский_край', 'СанктПетербург']);series_1.iloc[1] Результат: 10.