Pandas
Pandas — это библиотека Python для обработки и анализа структурированных данных, её название происходит от «panel data» («панельные данные»). Панельными данными называют информацию, полученную в результате исследований и структурированную в виде таблиц. Для работы с такими массивами данных и создан Pandas.
Освойте профессию «Аналитик данных»
Работа с открытым кодом
Pandas — это opensource-библиотека, то есть ее исходный код в открытом доступе размещен на GitHub. Пользователи могут добавлять туда свой код: вносить пояснения, дополнять методы работы и обновлять разделы. Для работы потребуется компилятор (программа, которая переводит текст с языка программирования в машинный код) C/C++ и среда разработки Python. Подробный процесс установки компилятора С для разных операционных систем можно найти в документации Pandas.
Профессия / 12 месяцев
Аналитик данных
Находите закономерности и делайте выводы, которые помогут бизнесу

В каких профессиях понадобится библиотека?
Навык работы с этой библиотекой пригодится дата-сайентистам или аналитикам данных. С помощью Pandas эти специалисты могут группировать и визуализировать данные, создавать сводные таблицы и делать выборку по определенным признакам.
Как установить Pandas
Пошаговая инструкция по установке библиотеки Pandas
-
Скачать библиотеку На официальном сайте Pandas указан самый простой способ начать работу с библиотекой. Для этого потребуется установить Anaconda — дистрибутив (форма распространения программного обеспечения, набор библиотек или программного кода для установки программы) для Python с набором библиотек. Безопасно скачать его можно на официальном сайте.

Настройка установки Вот несколько советов по установке Anaconda для новичков:
— Выбирайте рекомендованные настройки, на первое время этого будет достаточно. Например, Install for: Just me (recommended).
— Но если не поставить галочку «Add Anaconda to my PATH environment variable», то Anaconda не будет запускаться по умолчанию, каждый раз ее нужно будет запускать отдельно.
— На вопрос: «Do you wish to initialize Anaconda3?» (Хотите ли вы инициализировать Anaconda3?) отвечайте «Да».
— После завершения установки перезагрузите компьютер.

Запуск JupyterLab В командной строке Anaconda запустите JupyterLab — это интерактивная среда для работы с кодом, данными и блокнотами, которая входит в пакет дистрибутива. Для этого введите jupyter-lab .

Открытие блокнота Создайте в JupyterLab новый блокнот Python3. Для его создания надо щелкнуть на значке «+», расположенном в верхней левой части интерфейса. В появившемся меню выбрать «Python 3» для создания блокнота.

Импорт библиотеки В первой ячейке пропишите: import pandas as pd , после этого в следующих ячейках можно писать код.
Читайте также Как выбрать IT-специальность в новых реалиях?
DataFrame и Series
Чтобы анализировать данные с помощью Pandas, нужно понять, как устроены структуры этих данных внутри библиотеки. В первую очередь разберем, что такое DataFrame и Series.
Series
Pandas Series (серия) — это одномерный массив. Визуально он похож на пронумерованный список: слева в колонке находятся индексы элементов, а справа — сами элементы.
my_series = pd.Series([5, 6, 7, 8, 9, 10])

Индексом может быть числовой показатель (0, 1, 2…), буквенные значения (a, b, c…) или другие данные, выбранные программистом. Если особое значение не задано, то числовые индексы проставляются автоматически. Например, от 0 до 5 как в примере выше.
Такая нумерация называется RangeIndex, в ней всегда содержатся числа от 0 до определенного числа N, которое обозначает количество элементов в серии. Собственные значения индексов задаются в квадратных скобках через index, как в примере ниже:
my_series2 = pd.Series([5, 6, 7, 8, 9, 10]), index=['a', 'b', 'c', 'd', 'e', 'f'])

Индексы помогают обращаться к элементам серии и менять их значения. Например, чтобы в нашей серии [5, 6, 7, 8, 9, 10] заменить значения некоторых элементов на 0, мы прописываем индексы нужных элементов и указываем, что они равны нулю:
my_series2[['a', 'b', 'f']] = 0

Можно сделать выборку по нескольким индексам, чтобы ненужные элементы в серии не отображались:
my_series2[['a', 'b', 'f']]
a 5 b 6 f 10 dtype: int64
DataFrame
Pandas DataFrame — это двумерный массив, похожий на таблицу/лист Excel (кстати, данные из Excel можно читать с помощью команды pandas.read_excel(‘file.xls’)) . В нем можно проводить такие же манипуляции с данными: объединять в группы, сортировать по определенному признаку, производить вычисления. Как любая таблица, датафрейм состоит из столбцов и строк, причем столбцами будут уже известные объекты — Series.
Чтобы проверить, действительно ли серии — это части датафрейма, можно извлечь любую колонку из таблицы. Возьмем набор данных о нескольких странах СНГ, их площади и населении и выберем колонку country:
df = pd.DataFrame(< 'country': ['Kazakhstan', 'Russia', 'Belarus', 'Ukraine'], 'population': [17.04, 143.5, 9.5, 45.5], 'square': [2724902, 17125191, 207600, 603628] >)

В итоге получится простая серия, в которой сохранятся те же индексы по строкам, что и в исходном датафрейме:
df['country']
type(df['country'])


Станьте аналитиком данных и получите востребованную специальность
Кроме этого, у датафрейма есть индексы по столбцам, которые задаются вручную. Для простоты написания кода обозначим страны индексами из двух символов: Kazakhstan — KZ, Russia — RU и так далее:
# Создаем датафрейм с заданными индексами df = pd.DataFrame(< 'country': ['Kazakhstan', 'Russia', 'Belarus', 'Ukraine'], 'population': [17.04, 143.5, 9.5, 45.5], 'square': [2724902, 17125191, 207600, 603628] >, index=['KZ', 'RU', 'BY', 'UA'])

# Изменяем индексы df.index = ['KZ', 'RU', 'BY', 'UA'] df.index.name = 'Country Code'

По индексам можно искать объекты и делать выборку, как в Series . Возьмем тот же датафрейм и сделаем выборку по индексам KZ, RU и колонке population методом .loc (в случае .loc мы используем квадратные скобки, а не круглые, как с другими методами), чтобы сравнить население двух стран:
df.loc[['KZ', 'RU'], 'population']
Anaconda выведет следующее:
Country Code
KZ 17.04
RU 143.50
Name: population, dtype: float64
Также в DataFrame производят математические вычисления. Например, рассчитаем плотность населения каждой страны в нашем датафрейме. Данные в колонке population (численность населения) делим на square (площадь) и получаем новые данные в колонке density, которые показывают плотность населения:
# Вычисление плотности населения df['density'] = df['population'] / df['square'] * 1000000


Станьте аналитиком данных и получите востребованную специальность
Чтение и запись данных
В Pandas работают с форматами csv, excel, sql, html, hdf и другими. Полный список можно посмотреть с помощью метода .read, где через нижнее подчеркивание «_» будут указаны все доступные форматы.
Ниже представлены примеры чтения и записи данных на Python с использованием Pandas:
Чтение данных:
- Чтение данных из CSV файла:
import pandas as pd # Чтение CSV файла data = pd.read_csv('data.csv') # Вывод первых нескольких строк датафрейма print(data.head())
- Чтение данных из Excel файла:
# Чтение данных из Excel файла data = pd.read_excel('data.xlsx') # Вывод первых нескольких строк датафрейма print(data.head())
- Чтение данных из SQL базы данных:
from sqlalchemy import create_engine # Создание подключения к базе данных engine = create_engine('sqlite:///database.db') # Чтение данных с помощью SQL запроса query = "SELECT * FROM table_name" data = pd.read_sql(query, engine) # Вывод первых нескольких строк датафрейма print(data.head())
Запись данных:
- Запись данных в CSV или Exсel файл:
# Создание датафрейма data = pd.DataFrame(< 'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 22] >) # Запись в CSV файл (или Exсel, нужно будет поменять расширение ниже) data.to_csv('output.csv', index=False)
- Запись данных в SQL базу данных:
import pandas as pd from sqlalchemy import create_engine # Создание датафрейма data = pd.DataFrame(< 'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 22] >) # Создание подключения к базе данных engine = create_engine('sqlite:///new_database.db') # Запись данных в базу данных data.to_sql('new_table', engine, index=False, if_exists='replace')
Доступ по индексу в DataFrame
Для поиска данных в библиотеке Pandas используются два метода: .loc и .iloc . Рассмотрим их функциональность и применение.
Метод .loc:
Метод .loc предоставляет доступ к данным по заданному имени строки (индексу) в DataFrame. Рассмотрим пример с набором данных о скорости и ядовитости нескольких видов змей:
data = index = ['cobra', 'viper', 'sidewinder'] df = pd.DataFrame(data, index=index) # Вывод датафрейма print(df)

Используя метод .loc , мы можем получить информацию о конкретном виде змеи, например, гадюке (viper):
# Получение данных о гадюке (viper) viper_data = df.loc['viper'] print(viper_data)

Метод .iloc:
Метод .iloc позволяет осуществлять доступ к данным по порядковому номеру строки в DataFrame. Рассмотрим пример с набором данных, имеющим числовые индексы:
mydict = [, , ] df = pd.DataFrame(mydict) # Вывод датафрейма print(df)
a b c d 0 1 2 3 4 1 100 200 300 400 2 1000 2000 3000 4000
Используя метод .iloc , можно получить данные из первой строки с индексом 0:
first_row = df.iloc[0] first_row

Читайте также Что нужно знать, чтобы стать дата-сайентистом?
Группировка и агрегирование данных
Для этого используется метод .groupby , он позволяет анализировать отдельные группы данных и сравнивать показатели. Например, у нас есть несколько обучающих курсов, информация о которых хранится в одной таблице. Нужно проанализировать, какой доход приносит каждый из них:
Используем .groupby и указываем название колонки title, на основе которой Pandas объединит все данные. После этого используем метод .agregate – он поможет провести математические вычисления, то есть суммировать стоимость внутри каждой группы.
import pandas as pd # Создание DataFrame с данными о курсах data = < 'title': ['Курс A', 'Курс B', 'Курс C', 'Курс D', 'Курс E'], 'income': [100, 150, 200, 120, 180] >df = pd.DataFrame(data) # Группировка данных по названию курса и агрегирование дохода grouped = df.groupby('title', as_index=False).aggregate() grouped
Обратите внимание на as_index=False , эта часть кода отвечает за то, чтобы сохранить числовые индексы в результатах группировки и вычисления.

Сводные таблицы в Pandas
Их используют для обобщения информации, собранной об объекте исследования. Когда исходных данных много и все они разного типа, составление таблиц помогает упорядочить информацию. Чтобы создавать на Python сводные таблицы, тоже используют библиотеку Pandas, а именно — метод .pivot_table .
Для примера возьмем условный набор данных с простыми категориями one / two, small / large и числовыми значениями. В столбце A две категории foo / bar складываются в слово foobar — текст, который используется в программировании для условного обозначения. В этом случае он указывает, что мы делим данные на две группы по неопределенному признаку.
df = pd.DataFrame() df
Результат выполнения кода:

С помощью метода .pivot_table преобразуем эти данные в таблицу, а в скобках прописываем условия.
table = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'], aggfunc=np.sum) table

Мы разбиваем данные на две категории: bar и foo, в каждой из них будут подгруппы со значениями one и two, которые в свою очередь делятся на small и large. В сводной таблице мы вычисляем, сколько объектов будет в каждой группе. Для этого используем методы values, index, columns и aggfunc:
- values — метод для агрегации, объединяет элементы в одну систему;
- index и columns — методы, отвечающие за группировку столбцов;
- aggfunc — метод, который передает список функций, необходимых для расчета.
Визуализация данных в Pandas
Дата-аналитики составляют наглядные графики с помощью Pandas и библиотеки Matplotlib. В этой связке Pandas отвечает за вычислительную часть работы, а вспомогательная библиотека «создает» картинку.
Посмотрим на данные о продажах в одной из компаний:
| Число покупок на одного покупателя | Количество покупателей |
|---|---|
| 7000 | 4 |
| 3755 | 6 |
| 2523 | 13 |
| 541 | 16 |
| 251 | 21 |
| 1 | 31 |
В таблице видно, что одни пользователи совершили уже более 7 000 покупок, а некоторые — сделали первую. Чтобы увидеть подробную картину, составляем график sns.distplot. На горизонтальной оси будет отображаться число покупок на одного покупателя, а на вертикальной — количество покупателей, которые совершили именно столько покупок в этой компании. Так по графику можно определить, что самой многочисленной оказалась группа клиентов, которая совершила всего несколько покупок, а группа постоянных клиентов немногочисленная.
import seaborn as sns import matplotlib.pyplot as plt # Создание данных purchase_counts = [7000, 3755, 2523, 541, 251, 1] customer_counts = [4, 6, 13, 16, 21, 31] # Создание графика sns.set(style="whitegrid") sns.distplot(purchase_counts, bins=20, kde=False, hist_kws=) plt.xlabel('Число покупок на одного покупателя') plt.ylabel('Количество покупателей') plt.title('Распределение числа покупок') plt.show()

distplot — это график, который визуализирует гистограммы, то есть распределяет данные по столбцам. Каждому столбцу соответствует доля количества объектов в данной группе. Также distplot показывает плотность распределения — плавный линейный график, в котором самая высокая точка указывает на наибольшее количество объектов.
Кроме этого, в Pandas есть другие виды графиков:
- kdeplot — график плотности распределения, который останется, если убрать гистограммы из distplot;
- jointplot — график, показывающий распределение данных между двумя переменными. Каждая строка из набора данных в исходном файле отображается на графике как точка внутри системы координат. У точек на графике jointplot будет два заданных значения: одно по оси X, другое по оси Y.
Например, можно отследить взаимосвязь между тем, сколько минут посетитель проводит в торговом центре и сколько магазинов успевает посетить за это время: кто-то за 30 минут успеет зайти в 5 бутиков, а кто-то обойдет 16. При этом каждый посетитель на графике будет отображаться отдельной точкой.
Аналитик данных
Аналитики влияют на рост бизнеса. Они выясняют, какой товар и в какое время больше покупают. Считают юнит-экономику. Оценивают окупаемость рекламной кампании. Поэтому компании ищут и переманивают таких специалистов.

Статьи по теме:
Как использовать библиотеку pandas в Python
Освойте мощную библиотеку pandas для обработки и анализа данных в Python с нашей доступной статьей для новичков!

Алексей Кодов
Автор статьи
23 июня 2023 в 18:49
Библиотека pandas является одной из самых популярных библиотек в Python для обработки и анализа данных. С помощью pandas можно легко манипулировать таблицами данных, выполнять различные агрегации и визуализации. В этой статье мы рассмотрим основные возможности работы с pandas и научимся использовать эту библиотеку.
Установка и импорт
Для начала работы с pandas, убедитесь, что у вас установлена эта библиотека. Если нет, установите ее с помощью команды:
pip install pandas
Далее импортируйте библиотеку в свой Python-скрипт:
import pandas as pd
Создание и чтение DataFrame
DataFrame – это основной объект pandas, который представляет собой двумерную таблицу с метками на строках и колонках. Создадим простой DataFrame из словаря:
data = < "Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35], "City": ["New York", "San Francisco", "Los Angeles"] >df = pd.DataFrame(data)
Чтобы загрузить данные из файла, например, CSV, используйте следующую функцию:
df = pd.read_csv("file.csv")
Основные операции с DataFrame
Посмотрим на первые 5 строк нашего DataFrame:
print(df.head())
Выберем определенную колонку:
print(df["Name"])
Выберем строки по индексу:
print(df.loc[1])
Выберем строки и колонки по условию:
print(df[df["Age"] > 25])
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Агрегация данных
С помощью pandas можно легко агрегировать данные. Например, посчитаем средний возраст:
print(df["Age"].mean())
Или найдем минимальное и максимальное значение:
print(df["Age"].min()) print(df["Age"].max())
Сохранение DataFrame
Чтобы сохранить ваш DataFrame в файл, например, в формате CSV, используйте следующую функцию:
df.to_csv("output.csv", index=False)
Теперь вы знаете основы работы с библиотекой pandas в Python. Удачи вам в изучении этой мощной библиотеки и использовании ее для анализа данных! Не забывайте практиковаться и пробовать новые возможности pandas на реальных проектах.
Pandas: обзор библиотеки для Python
Библиотека Pandas входит в топ-5 самых востребованных навыков для вакансий в области data science.

Михаил Елизаров
Автор статьи
10 ноября 2022 в 18:26
Библиотека Pandas — «рабочая лошадка» аналитика данных. Она входит в топ-5 самых востребованных навыков для вакансий в области data science.
Рассказываем в статье, что такое Pandas для Python, как его установить, пользоваться и почему это классная штука.
Аналитик данных: новая работа через 5 месяцев
Получится, даже если у вас нет опыта в IT

Что такое Pandas для Python
Библиотеку используют для анализа и обработки табличных данных. Pandas — это как Excel, но мощнее. В Pandas можно спокойно работать с данными объемом в миллионы строк.
Поэтому на курсе Skypro «Аналитик данных» студентам дают основы Python. За несколько месяцев можно освоить базовые навыки, чтобы обрабатывать данные быстрее и качественнее. А еще с помощью знаний Python можно создавать визуализации, чтобы данные подтягивались туда из таблиц и обновлялись автоматически.
У Pandas открытый исходный код и подробная документация.
Структуры классов
Есть два главных класса библиотеки: Series и DataFrame.
Класс Series
Series — одномерный индексированный массив, который способен хранить данные любого типа. Номер записи в массиве называется индексом.
Пример создания Series:

Класс DataFrame
DataFrame — таблица с разными типами столбцов, то есть двумерная структура данных.
Пример создания DataFrame:

Как установить Pandas
Установите набор программ Anaconda — в него входит Python вместе с Pandas и другими полезными библиотеками.
- Скачайте установщик с сайта Anaconda.
- Откройте файл и следуйте инструкциям. Не забудьте поставить галочку в опции «Add Anaconda to my PATH environment variable».
- Перезагрузите компьютер.
- Откройте anaconda navigator и запустите jupyter notebook.
После этого импортируйте Pandas командой import pandas as pd.
Основная функциональность
Методы классов Series и DataFrame позволяют считать сводные статистики: среднюю, медиану, сумму и другие.
Пример:
Загружаем данные с характеристиками алмазов.

Считаем среднее и стандартное отклонение цены.

Для статистик по категориям используйте группировку.
Пример:
Посмотрим средние значения цены и размеров по разным типам огранки из колонки cut.

Обратите внимание, как отличается цена
Для двух групп используйте сводные таблицы.
Пример:
Узнаем среднюю цену алмазов по качеству обработки и цвету.

При помощи Pandas можно визуализировать данные. Для создания графиков используйте метод plot с параметром kind, который отвечает за тип визуализации.
Некоторые виды графиков:
- линейный — вызывается по умолчанию;
- столбчатый;
- гистограмма;
- боксплот;
- диаграмма рассеяния.
Посмотрим, как цена зависит от размера, построив диаграмму рассеяния.
Примеры использования в аналитике
Продолжим изучать данные об алмазах. Постараемся ответить на вопрос, что влияет на цену. Для работы понадобятся библиотеки Seaborn и Matplotlib, которые вы установили вместе с Anaconda.
Загрузим таблицу и посмотрим на ее начало, используя команду head.

Shape показывает количество строк (53 940) и столбцов (10):
С помощью метода info посмотрим на типы данных и количество заполненных значений в колонках.

Сolor, cut и clarity — категориальные переменные. Остальные — вещественные (числа).
Проанализируем их по отдельности.
Анализ категориальных переменных
Посмотрим на уникальные значения по каждой колонке с помощью команды value_counts. Вызовем ее из цикла.
for i in ['cut', 'clarity', 'color']: print(df[i].value_counts())
Для визуализации используем боксплоты, которые показывают распределение цены по каждой из категорий.

Вывод — исходя из графиков, дороже всего стоят алмазы с параметрами:
- Premium в колонке cut.
- VS1, VS2, SI1, SI2, I1 в колонке clarity.
- H, I или J в колонке color.
Анализ вещественных переменных
Статистику по числовым столбцам получим командой describe.

Посмотрим, как с ними взаимодействует стоимость камней, с помощью диаграмм рассеяния.

Вывод — цена сильнее всего зависит от переменных carat и x.
Мы узнали, что колонки carat, x, cut, clarity и color влияют на стоимость алмаза. Дальше можно построить модель для предсказания цены в зависимости от этих переменных.
Чтобы узнать, как это правильно сделать, записывайтесь на курс «Аналитик данных». За пять месяцев вы научитесь работать со статистикой, в Python, SQL и Excel. Наставники на курсе — аналитики из «Сбера», «Яндекса» и других крупных компаний. В конце курса специалисты центра карьеры помогут составить грамотное резюме и найти первую работу.
Pandas Python: описание одной из популярных библиотек для Питона
Как мы уже говорили, в Pandas создать DataFrame можно разными путями, например , импортировать информацию из файла CSV. Для подобного импорта в Пандас есть специальный метод read_csv(), который позволяет читать CSV-файл.
Допустим, у нас есть некий CSV-файл «example.csv», тогда на практике это будет выглядеть следующим образом:
import pandas as pd
data = pd.read_csv(`example.csv`)
print(data)
Работа с данными DataFrame
В принципе, вы уже знаете , как создать DataFrame в Pandas. Но при помощи Питона в Пандас можно удобно работать с данными. Разберем несколько способов работы с данными.
1. Можно получить статистическую сводку, например:
print(df[`Catholics %`].describe())
Где за вывод статистики отвечает «df.describe()»
2. Можно отсортировать записи, например:
print(df.sort_values(`Catholics %`, ascending=False))
3. Можно «нарезать» записи, например:
print(df[[`Country`, `Capital`]])
При этом «нарезать» записи мы можем не только по заголовкам, но также для этого можно использовать индекс строк или столбцов. Для этой операции нам понадобится функция «iloc[]». Например, если нам нужно будет поработать с первой строкой DataFrame, то функция будет такой: «df.iloc[0,:]».
Если нам нужно вывести конкретный элемент таблицы, то мы можем также использовать эту функцию, но нужно буде т прописать индекс строки и столбца элемента. К примеру, нам нужно вывести первый элемент второго столбца, тогда функция будет выглядеть так: «df.loc[0,1]». В нашей DataFrame это буде т «Vienna».
4. Можно отфильтровать данные, например:
print(df[df[`Catholics %`]>20])
Для фильтрации условий применяют операторы сравнения.
5. Можно переименовать столбики в DataFrame, например:
df.rename(colum n s = , inplace=True)
print(df.head)
После такой небольшой процедуры наш столбец «Catholics» переименуется в «Orthodoxy».
Series в Pandas Python
Мы уже отмечали, что Series — это небольшой объект, который похож на одномерный массив, но от таких массивов Series отличает наличие индекса для каждого элемента.
Например , создаем и выводим Series:
import pandas as pd
Capital_series = pd.Series([Vienna, Stockholm, Warsaw])
print(Capital_series)
На выходе мы получим следующее:
|
0 |
Vienna |
|
1 |
Stockholm |
|
2 |
Warsaw |
Где 0, 1, 2 — это индексы элементов Series. Сами Series могут быть элементами DataFrame. А с элементами Series можно проводить абсолютно любые операции.
Заключение
В этой статье мы показали, как установить Pandas, как создать DataFrame и как можно работать с элементами DataFrame. Сама библиотека Пандас Питон — это очень обширный функционал при работе с данными. Мы приоткрыли лишь небольшую его часть. Кому интересн о подробнее разобраться в Pandas, могут изучить официальную документацию к этому документу по ссылке .
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

