Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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.ru/catalog/product/2069262 (дата обращения: 18.07.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации 
Казанский национальный исследовательский 
технологический университет 
А. Н. Титов, Р. Ф. Тазиева
ОБРАБОТКА ДАННЫХ В 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. 
Материал, изложенный в пособии, может быть использован при 
проведении лабораторных занятий по обработке экспериментальных 
данных, вычислительной и прикладной математике, алгоритмам 
и структурам данных.  


.  С Т Р У К Т У Р А  Д А Н Н Ы Х  В  P A N D A S
Основными структурами данных в Pandas являются объекты Series, 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 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: 
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. 


Доступ онлайн
500 ₽
В корзину