pandas — программная библиотека на языке Python для обработки и анализа данных. Работа pandas с данными строится поверх библиотеки NumPy, являющейся инструментом более низкого уровня. Предоставляет специальные структуры данных и операции для манипулирования числовыми таблицами и временны́ми рядами. Название библиотеки происходит от эконометрического термина «панельные данные», используемого для описания многомерных структурированных наборов информации. pandas распространяется под новой лицензией BSD.

Pandas
Логотип программы Pandas
Скриншот программы Pandas
Тип Python-библиотека[вд] и программа для численного анализа[вд]
Автор Уэс Мак-Кинни[вд][2]
Разработчики Уэс Мак-Кинни[вд], Брок Мендель[вд], Йорис Ван ден Босше[вд] и Джефф Ребек[вд][3]
Написана на Python
Операционная система кроссплатформенность
Первый выпуск 11 января 2008
Последняя версия
Репозиторий github.com/pandas-dev/pa…
Лицензия BSD
Сайт pandas.pydata.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Область применения

править

Основная область применения — обеспечение работы в рамках среды Python не только для сбора и очистки данных, но для задач анализа и моделирования данных, без переключения на более специфичные для статобработки языки (такие, как R и Octave).

Также активно ведётся работа по реализации «родных» категориальных типов данных.

Пакет прежде всего предназначен для очистки и первичной оценки данных по общим показателям, например среднему значению, квантилям и так далее; статистическим пакетом[англ.] он в полном смысле не является, однако наборы данных типов DataFrame и Series применяются в качестве входных в большинстве модулей анализа данных и машинного обучения (SciPy, Scikit-Learn[англ.] и других).

Возможности

править

Основные возможности библиотеки:

  • Объект DataFrame для манипулирования индексированными массивами двумерных данных[4]
  • Инструменты для обмена данными между структурами в памяти и файлами различных форматов
  • Встроенные средства совмещения данных и способы обработки отсутствующей информации
  • Переформатирование наборов данных, в том числе создание сводных таблиц
  • Срез данных по значениям индекса, расширенные возможности индексирования, выборка из больших наборов данных
  • Вставка и удаление столбцов данных
  • Возможности группировки позволяют выполнять трёхэтапные операции типа «разделение, изменение, объединение» (англ. split-apply-combine).
  • Слияние и объединение наборов данных
  • Иерархическое индексирование позволяет работать с данными высокой размерности в структурах меньшей размерности
  • Работа с временными рядами: формирование временных периодов и изменение интервалов и так далее

Библиотека оптимизирована для высокой производительности, наиболее важные части кода написаны на Cython и Си.

История

править

Разработка пакета начата в 2008 году сотрудником AQR Capital Management[англ.] Уэсом Маккини (англ. Wes McKinney). Перед уходом из AQR ему удалось убедить руководство позволить опубликовать исходный код библиотеки под свободной лицензией.

Другой работник AQR — Чан Шэ — присоединился к проекту в 2012 году, став вторым главным разработчиком библиотеки. Примерно в то же время библиотека набрала популярность в среде Python-разработчиков, и к проекту присоединилось множество новых участников.[5]

Примеры использования

править

Кривые

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.DataFrame(np.random.randn(100, 5), columns=list('ABCDE'))
df=df.cumsum() # Return cumulative sum over a DataFrame or Series axis
df.plot()
plt.show()

Диаграмма

df = pd.DataFrame(np.random.rand(10, 5), columns=list('ABCDE'))
df.plot.bar(stacked=True)
plt.show()

График

df = pd.DataFrame(np.random.rand(7, 5), columns=list('ABCDE'))
df.plot.box()
plt.show()

Гистограмма

data = pd.Series(np.random.normal(size=100))
data.hist(grid=False)
plt.show()

Примечания

править
  1. Release 2.2.3 — 2024.
  2. https://wesmckinney.com/pages/about.html
  3. https://www.youtube.com/watch?v=7JHqxODJG9k
  4. Pandas Reset Index (30 августа 2021). Дата обращения: 30 августа 2021. Архивировано 30 августа 2021 года.
  5. Daniel Chen. Pandas for Everyone: Python Data Analysis. — Addison-Wesley Professional, 2017. — ISBN 978-0134546933. Архивная копия от 6 сентября 2021 на Wayback Machine Источник. Дата обращения: 6 сентября 2021. Архивировано 6 сентября 2021 года.

Литература

править
  • Маккинни У. Python и анализ данных = Python for Data Analysis. — ДМК Пресс, 2015. — 482 с. — ISBN 978-5-97060-315-4, 978-1-449-31979-3.
  • Бринк Х., Ричардс Д., Феверолф М. Машинное обучение. — Питер, 2018. — 336 с. — ISBN 978-5-496-02989-6.
  • Вандер Плас Дж. Python для сложных задач. Наука о данных и машинное обучение = Python Data Science Handbook: Essential Tools for Working with Data. — Питер, 2017. — 576 с. — ISBN 978-5-496-03068-7.
  • Хейдт М. Изучаем pandas = Learning pandas. — ДМК Пресс, 2018. — 432 с. — ISBN 978-5-97060-625-4.