Python: Pandas

Теория: Введение

В этом курсе мы разберем библиотеку 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())

Посмотрим на основные статистические показатели:

print(df_orders.describe())

Одним методом удалось посмотреть среднее значение и отклонение от него, минимальное и максимальное значения и ряд персентильных значений.

Также одним методом можно достать средние значения по каждому магазину:

print(df_orders.mean())

Остановимся в подготовке данных на центрировании значений продаж по каждому магазину. Вычтем из значений продаж среднее для данного магазина:

df_orders_centered = df_orders - df_orders.mean()
print(df_orders_centered)

Остается сохранить полученный результат:

df_orders_centered.to_csv('data/Shop_orders_centered.csv')

В директории с исходным файлом теперь лежит преобразованный вариант с подготовленными данными. Работа аналитика завершена.

Выводы

В рамках данного курса рассматривается библиотека Pandas. Это один из наиболее популярных инструментов для обработки и анализа табличных данных на языке Python. Большое количество поддерживаемых типов данных и функций для их обработки, высокая скорость работы и дружелюбный интерфейс выделяют ее среди конкурентов.

Чтобы освоить основные навыки работы с данной библиотекой, предлагаем пройти несколько шагов:

  1. Понять основной порядок работы с данными
  2. Узнать про интерфейсы чтения и записи данных
  3. Поработать с индексированием
  4. Научиться фильтровать значения в таблицах
  5. Применить функции для обработки строк и столбцов
  6. Построить сложные агрегации и сводные таблицы
  7. Объединить несколько таблиц в одну

После этих тем вы сможете уверенно использовать инструментарий библиотеки Pandas в подготовке и анализе данных.

Рекомендуемые программы

Завершено

0 / 10