В этом курсе мы разберем библиотеку Pandas. Это один из наиболее популярных инструментов для обработки и анализа табличных данных на языке Python. После обучения вы сможете использовать инструментарий библиотеки Pandas в подготовке и анализе данных.
В этом вводном уроке мы разберем, по каким причинам аналитики используют эту библиотеку, и как выглядит типичный порядок работы с Pandas.
Причины появления библиотеки Pandas
Чтобы организовать работу компаний и интернет-сервисов, нужны хранилища данных. Их организовывают по-разному:
- Записки на бумажном носителе
- Набор текстовых файлов
- Электронные таблицы
- Базы данных
Табличные варианты хранения информации используются чаще, поскольку информация в них структурирована. Это удобно, когда требуется проводить анализ, расследовать инциденты, периодически подводить итоги и искать нужные данные.
Для проектов с небольшим объемом производимых транзакций достаточно популярных средств работы с электронными таблицами. Это могут быть:
- Десктопные приложения: Microsoft Excel, LibreOffice, OfficeSuite
- Облачные решения: Google Sheets
В последнее время количество производимых операций и число пользователей или клиентов растет. Поэтому хранить данные в электронных таблицах становится накладным по следующим причинам:
- Увеличение объема необходимой памяти для хранения
- Недостаточная скорость записи данных
- Увеличение времени на чтение и обработку данных
В таких случаях на практике используют реляционные системы управления базами данных — СУБД. Часто их называют просто базами данных. Наиболее популярные из них: PostgreSQL, MySQL, SQL Server.
Для аналитика базы данных — это инструмент хранения большого количества данных в виде набора таблиц. Многие операции с электронными таблицами также реализуемы в базах данных, но с использованием особого языка — SQL.
Рост технологий анализа данных и машинного обучения подтолкнул многие компании к пересмотру подходов к хранению данных. Некоторые из них полностью перешли на базы данных, в некоторых часть данных осталась в виде электронных таблиц и документов. В последнем случае для анализа требуется широкий спектр инструментов.
Попытки создания универсального способа для анализа табличных данных привели к созданию библиотеки Pandas.
Широкое распространение библиотека Pandas получила по ряду причин:
- Написана на популярном языке для анализа данных и машинного обучения — Python
- Использует в основе библиотеку научных и быстрых вычислений — Numpy
- Работает с широким спектром типов входных данных: csv, xsl, xslx, json
- Подключается напрямую к базам данных
- Имеет высокоуровневый интерфейс для преобразований данных и аналитики
Типичный порядок работы с библиотекой Pandas
Рассмотрим последовательность действий аналитика при работе с данными. Она содержит несколько ключевых шагов:
- Чтение исходных данных
- Анализ данных
- Обработка данных
- Сохранение результатов анализа и обработки исходных данных
Одним из распространенных типов данных является csv — comma separated values. Это текстовые данные, в которых названия и значения разделяются запятой, точкой с запятой или табуляцией.
Для примера рассмотрим файл data/Shop_orders.csv
со значениями продаж четырех магазинов за одну неделю. Значения разделены запятой:
Weekday,Shop_1,Shop_2,Shop_3,Shop_4
mon,7,1,7,8
tue,4,2,4,5
wed,3,5,2,3
thu,8,12,8,7
fri,15,11,13,9
sat,21,18,17,21
sun,25,16,25,17
Для работы с данными импортируем модуль Pandas и воспользуемся нужным методом чтения:
# Общепринятое сокращение для Pandas
import pandas as pd
df_orders = pd.read_csv('data/Shop_orders.csv', index_col=0)
Помимо пути к файлу необходимо указать колонку, которую считаем за индекс. В нашем случае это нулевая колонка — Weekday.
Для обзора считанных данных воспользуемся методом head()
, который покажет первые пять строк данных:
print(df_orders.head())
# => Shop_1 Shop_2 Shop_3 Shop_4
# Weekday
# mon 7 1 7 8
# tue 4 2 4 5
# wed 3 5 2 3
# thu 8 12 8 7
# fri 15 11 13 9
Посмотрим на основные статистические показатели:
print(df_orders.describe())
# => Shop_1 Shop_2 Shop_3 Shop_4
# count 7.000000 7.000000 7.000000 7.000000
# mean 11.857143 9.285714 10.857143 10.000000
# std 8.610625 6.725927 8.071113 6.557439
# min 3.000000 1.000000 2.000000 3.000000
# 25% 5.500000 3.500000 5.500000 6.000000
# 50% 8.000000 11.000000 8.000000 8.000000
# 75% 18.000000 14.000000 15.000000 13.000000
# max 25.000000 18.000000 25.000000 21.000000
Одним методом удалось посмотреть среднее значение и отклонение от него, минимальное и максимальное значения и ряд персентильных значений.
Также одним методом можно достать средние значения по каждому магазину:
print(df_orders.mean())
# => Shop_1 11.857143
# Shop_2 9.285714
# Shop_3 10.857143
# Shop_4 10.000000
# dtype: float64
Остановимся в подготовке данных на центрировании значений продаж по каждому магазину. Вычтем из значений продаж среднее для данного магазина:
df_orders_centered = df_orders - df_orders.mean()
print(df_orders_centered)
# => Shop_1 Shop_2 Shop_3 Shop_4
# Weekday
# mon -4.857143 -8.285714 -3.857143 -2.0
# tue -7.857143 -7.285714 -6.857143 -5.0
# wed -8.857143 -4.285714 -8.857143 -7.0
# thu -3.857143 2.714286 -2.857143 -3.0
# fri 3.142857 1.714286 2.142857 -1.0
# sat 9.142857 8.714286 6.142857 11.0
# sun 13.142857 6.714286 14.142857 7.0
Остается сохранить полученный результат:
df_orders_centered.to_csv('data/Shop_orders_centered.csv')
В директории с исходным файлом теперь лежит преобразованный вариант с подготовленными данными. Работа аналитика завершена.
Выводы
В рамках данного курса рассматривается библиотека Pandas. Это один из наиболее популярных инструментов для обработки и анализа табличных данных на языке Python. Большое количество поддерживаемых типов данных и функций для их обработки, высокая скорость работы и дружелюбный интерфейс выделяют ее среди конкурентов.
Чтобы освоить основные навыки работы с данной библиотекой, предлагаем пройти несколько шагов:
- Понять основной порядок работы с данными
- Узнать про интерфейсы чтения и записи данных
- Поработать с индексированием
- Научиться фильтровать значения в таблицах
- Применить функции для обработки строк и столбцов
- Построить сложные агрегации и сводные таблицы
- Объединить несколько таблиц в одну
После этих тем вы сможете уверенно использовать инструментарий библиотеки Pandas в подготовке и анализе данных.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.