Jump to content

панды (программное обеспечение)

Панды
Оригинальный автор(ы) Уэс МакКинни
Разработчик(и) Сообщество
Первоначальный выпуск 11 января 2008 г .; 16 лет назад ( 11.01.2008 ) [ нужна ссылка ]
Стабильная версия
2.2.2 [1] / 10 апреля 2024 г .; 2 месяца назад ( 10 апреля 2024 г. )
Предварительный выпуск
2.0rc1 / 15 марта 2023 г.
Репозиторий
Написано в Питон , Китон , Си
Операционная система Кросс-платформенный
Тип Технические вычисления
Лицензия Новая лицензия BSD
Веб-сайт панды .pydata .org

Pandas (в стиле pandas ) — это программная библиотека , написанная для языка программирования Python для манипулирования и анализа данных . В частности, он предлагает структуры данных и операции для манипулирования числовыми таблицами и временными рядами . Это бесплатное программное обеспечение , распространяемое по трехпунктной лицензии BSD . [2] Название происходит от термина « pan el data наборы », эконометрического термина, обозначающего данных , которые включают наблюдения за несколькими периодами времени для одних и тех же людей. [3] а также игра на фразе «Анализ данных Python». [4] : 5  Уэс МакКинни начал создавать то, что впоследствии стало Pandas, в AQR Capital, когда он работал там исследователем с 2007 по 2010 год. [5]

Разработка Pandas привнесла в Python множество сопоставимых функций работы с DataFrames, которые были установлены в языке программирования R. Библиотека построена на основе другой библиотеки NumPy .

История [ править ]

Разработчик Уэс МакКинни начал работать над Pandas в 2008 году, когда работал в AQR Capital Management, из-за потребности в высокопроизводительном и гибком инструменте для количественного анализа финансовых данных. Прежде чем покинуть AQR, он смог убедить руководство разрешить ему открыть исходный код библиотеки.

Другой сотрудник AQR, Чан Ше, присоединился к усилиям в 2012 году в качестве второго крупного сотрудника библиотеки.

В 2015 году Pandas стал финансово спонсируемым проектом NumFOCUS , некоммерческой благотворительной организации 501(c)(3) в США. [6]

Модель данных [ править ]

Pandas построен на структурах данных, называемых Series и DataFrames . Данные для этих коллекций можно импортировать из различных форматов файлов, таких как значения, разделенные запятыми , JSON , Parquet , SQL базы данных таблицы или запросы , а также Microsoft Excel . [7]

Серия — это одномерная структура данных, построенная на основе . массива NumPy [8] : 97  В отличие от NumPy, каждая точка данных имеет связанную метку. Коллекция этих меток называется индексом. [4] : 112  Ряды можно использовать арифметически, как в утверждении series_3 = series_1 + series_2: это позволит совместить точки данных с соответствующими значениями индекса в series_1 и series_2, затем сложите их вместе, чтобы получить новые значения в series_3. [4] : 114  DataFrame Python, сопоставляющему имена столбцов ( ключи — это двумерная структура данных, состоящая из строк и столбцов, похожая на электронную таблицу и аналогичная словарю ) с сериями (значениями), при этом каждая серия имеет общий индекс. [4] : 115  DataFrames можно объединять или «объединять» по столбцам или индексам аналогично соединениям в SQL . [4] : 177–182  Pandas реализует подмножество реляционной алгебры и поддерживает соединения «один к одному», «многие к одному» и «многие ко многим». [8] : 147–148  Pandas также поддерживает менее распространенные Panel и Panel4D , которые представляют собой трехмерные и четырехмерные структуры данных соответственно. [8] : 141 

Пользователи могут преобразовывать или суммировать данные, применяя произвольные функции . [4] : 132  Поскольку Pandas построен на основе NumPy, все функции NumPy также работают с сериями и DataFrames. [8] : 115  Pandas также включает встроенные операции для арифметики, манипуляций со строками и сводной статистики, такой как среднее значение , медиана и стандартное отклонение . [4] : 139, 211  Эти встроенные функции предназначены для обработки недостающих данных, обычно представленных значением с запятой плавающей NaN . [4] : 142–143 

Подмножества данных можно выбирать по имени столбца, индексу или логическим выражениям . Например, df[df['col1'] > 5] вернет все строки в DataFrame df для которого значение столбца col1 превышает 5. [4] : 126–128  Данные могут быть сгруппированы по значению столбца, как в df['col1'].groupby(df['col2']), или функцией, которая применяется к индексу. Например, df.groupby(lambda i: i % 2) группирует данные по четности индекса. [4] : 253–259 

Pandas включает поддержку временных рядов , например возможность интерполировать значения. [4] : 316–317  и фильтровать, используя диапазон временных меток (например, data['1/1/2023':'2/2/2023'] вернет все даты между 1 января и 2 февраля). [4] : 295  Pandas представляет отсутствующие данные временных рядов, используя специальный объект NaT (Not a Timestamp) вместо значения NaN, которое он использует в другом месте. [4] : 292 

Индексы [ править ]

По умолчанию индекс Pandas представляет собой серию целых чисел, возрастающих от 0, аналогично индексам массивов Python . Однако индексы могут использовать любой тип данных NumPy, включая плавающую запятую, метки времени или строки. [4] : 112 

Синтаксис Pandas для сопоставления значений индекса с соответствующими данными аналогичен синтаксису, который Python использует для сопоставления ключей словаря со значениями. Например, если s это серия, s['a'] вернет точку данных по индексу a. В отличие от ключей словаря, уникальность значений индекса не гарантируется. Если серия использует значение индекса a для нескольких точек данных, тогда s['a'] вместо этого вернет новую серию, содержащую все совпадающие значения. [4] : 136  Имена столбцов DataFrame хранятся и реализуются идентично индексу. Таким образом, DataFrame можно рассматривать как имеющий два индекса: один на основе столбца и один на основе строки. Поскольку имена столбцов хранятся в виде индекса, они не обязательно должны быть уникальными. [8] : 103–105 

Если data является серией, то data['a'] возвращает все значения со значением индекса a. Однако, если data является DataFrame, тогда data['a'] возвращает все значения в столбцах с именем a. Чтобы избежать этой двусмысленности, Pandas поддерживает синтаксис data.loc['a'] в качестве альтернативного способа фильтрации с использованием индекса. Pandas также поддерживает синтаксис data.iloc[n], который всегда принимает целое число n и возвращает n-е значение, считая с 0. Это позволяет пользователю действовать так, как будто индекс представляет собой последовательность целых чисел, подобную массиву, независимо от того, как он на самом деле определен. [8] : 110–113 

Pandas поддерживает иерархические индексы с несколькими значениями для каждой точки данных. Индекс с такой структурой, называемый «MultiIndex», позволяет одному DataFrame представлять несколько измерений, подобно сводной таблице в Microsoft Excel . [4] : 147–148  Каждому уровню MultiIndex можно присвоить уникальное имя. [8] : 133  На практике данные с более чем двумя измерениями часто представляются с использованием DataFrames с иерархическими индексами вместо многомерных Panel и Panel4D. структур данных [8] : 128 

Критика [ править ]

Pandas критиковали за неэффективность. Pandas может потребоваться в 5–10 раз больше памяти, чем размер базовых данных, и весь набор данных должен быть загружен в ОЗУ . Библиотека не оптимизирует планы запросов и не поддерживает параллельные вычисления на нескольких ядрах . Уэс МакКинни, создатель Pandas, рекомендовал Apache Arrow в качестве альтернативы для решения этих проблем с производительностью и других ограничений. [9]

См. также [ править ]

Ссылки [ править ]

  1. ^ «Панды 2.2.2» . 10 апреля 2024 г.
  2. ^ «Лицензия – Обзор пакета – Документация pandas 1.0.0» . панды . 28 января 2020 г. Проверено 30 января 2020 г.
  3. ^ Уэс МакКинни (2011). «Pandas: базовая библиотека Python для анализа данных и статистики» (PDF) . Проверено 2 августа 2018 г.
  4. Перейти обратно: Перейти обратно: а б с д и ж г час я дж к л м н тот п МакКинни, Уэс (2014). Python для анализа данных (первое изд.). О'Рейли. ISBN  978-1-449-31979-3 .
  5. ^ Копф, Дэн. «Познакомьтесь с человеком, создавшим самый важный инструмент в области науки о данных» . Кварц . Проверено 17 ноября 2020 г.
  6. ^ «NumFOCUS – панды: проект, финансируемый с финансовой точки зрения» . NumFOCUS . Проверено 3 апреля 2018 г.
  7. ^ «Инструменты ввода-вывода (Text, CSV, HDF5,…) — документация pandas 1.4.1» .
  8. Перейти обратно: Перейти обратно: а б с д и ж г час ВандерПлас, Джейк (2016). Справочник по Python Data Science: основные инструменты для работы с данными (первое издание). О'Рейли. ISBN  978-1-491-91205-8 .
  9. ^ МакКинни, Уэс (21 сентября 2017 г.). «Apache Arrow и «10 вещей, которые я ненавижу в пандах» » . wesmckinney.com . Проверено 21 декабря 2023 г.

Дальнейшее чтение [ править ]

  • МакКинни, Уэс (2017). Python для анализа данных: обработка данных с помощью Pandas, NumPy и IPython (2-е изд.). Севастополь: О'Рейли. ISBN  978-1-4919-5766-0 .
  • Молин, Стефани (2019). Практический анализ данных с помощью Pandas: эффективно выполняйте сбор, обработку, анализ и визуализацию данных с помощью Python . Пакет. ISBN  978-1-7896-1532-6 .
  • Чен, Дэниел Ю. (2018). Панды для всех: анализ данных Python . Бостон: Аддисон-Уэсли. ISBN  978-0-13-454693-3 .
  • ВандерПлас, Джейк (2016). «Манипулирование данными с помощью Pandas». Справочник по Python Data Science: основные инструменты для работы с данными . О'Рейли. стр. 97–216. ISBN  978-1-4919-1205-8 .
  • Патхак, Чанки (2018). Поваренная книга панд . стр. 1–8.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e780810222c34fffff38631602896803__1718895300
URL1:https://arc.ask3.ru/arc/aa/e7/03/e780810222c34fffff38631602896803.html
Заголовок, (Title) документа по адресу, URL1:
pandas (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)