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

Обработка данных в Python. Основы работы с библиотекой Pandas

Покупка
Артикул: 809805.01.99
Доступ онлайн
500 ₽
В корзину
Рассмотрены основы анализа и обработки данных в Python с использованием библиотеки Pandas. Приведены примеры работы с объектами Series и Data-Frame: осуществление доступа к данным, внесение изменений в DataFrame, визуализация полученных результатов, а также сортировка, фильтрация и группировка данных. Для оценки уровня усвоения студентами пройденного материала предложены варианты самостоятельных работ. Предназначено для бакалавров, обучающихся по направлениям подготовки 28.03.02 «Наноинженерия», 09.03.02 «Информационные системы и технологии», изучающих дисциплины «Обработка экспериментальных данных», «Алгоритмы и структуры данных», «Большие данные», «Теория информации, данные, знания», «Прикладная математика», «Вычислительная математика». Подготовлено на кафедре информатики и прикладной математики.
Титов, А. Н. Обработка данных в Python. Основы работы с библиотекой Pandas : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева ; Минобрнауки России, Казан. нац. исслед. технол. ун-т. - Казань : Изд-во КНИТУ, 2022. - 116 с. - ISBN 978-5-7882-3164-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/2069262 (дата обращения: 11.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования Российской Федерации

Казанский национальный исследовательский

технологический университет

А. Н. Титов, Р. Ф. Тазиева

ОБРАБОТКА ДАННЫХ В PYTHON

ОСНОВЫ РАБОТЫ 

С БИБЛИОТЕКОЙ PANDAS

Учебно-методическое пособие

Казань

Издательство КНИТУ

2022
УДК 004.6(075)
ББК 32.97я7

Т45

Печатается по решению редакционно-издательского совета 

Казанского национального исследовательского технологического университета

Рецензенты:

канд. пед. наук, доц. С. М. Куценко
канд. экон. наук, доц. О. С. Семичева

Т45

Титов А. Н. 
Обработка данных в Python. Основы работы с библиотекой Pandas : 
учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; Минобрнауки 
России, Казан. нац. исслед. технол. ун-т. – Казань : Изд-во КНИТУ, 
2022. – 116 с.

ISBN 978-5-7882-3164-8

Рассмотрены основы анализа и обработки данных в Python с использовани-

ем библиотеки Pandas. Приведены примеры работы с объектами Series и Data-
Frame: осуществление доступа к данным, внесение изменений в 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.
При
обращении
к
элементам
можно
использовать
срезы

(series_1[1:4] – будут выведены сведения об элементах с номерами 1,
2, 3) или списки (series_1[[1,4,5]]).

Задание имен объекту и индексу. С помощью атрибута name

можно задать имя объекту и индексу соответственно:

series_1.name='РФ';series_1.index.name='Регион';series_1

Изменение значений элементов серии. Изменить значения эле-

ментов серии можно, обратившись к нему по индексу:

import pandas as pd
series_1 = pd.Series([8, 10, 16, 19, 59, 78])
series_1[1,4,5]=[110,159,178];series_1

В случае символьных индексов это можно сделать следующим 

образом:
series_1['Калмыкия','Пермский_край','Санкт-Петербург']=[110,159,178]

Изменение индексов элементов. При необходимости можно из-

менить индексы элементов:

import pandas as pd
series_1.index=['Клм', 'Кар', 'Тат', 'Хак', 'П_край', 'С-Петербург']
series_1

Присвоенное ранее имя серии сохранилось. Индексы можно за-

дать списком: index= list('ABCDE').
Доступ онлайн
500 ₽
В корзину