Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Введение 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())
# => 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. Большое количество поддерживаемых типов данных и функций для их обработки, высокая скорость работы и дружелюбный интерфейс выделяют ее среди конкурентов.

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

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

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


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 7 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»
Изображение Тото

Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу