Spec-Zone.ru › pandas 0.25

Обзор пакета

pandas — это пакет Python, предоставляющий быстрые, гибкие и выразительные структуры данных, предназначенные для удобной и интуитивно понятной работы с «реляционными» или «мечеными» данными. Он призван стать основным высокоуровневым строительным блоком для выполнения практического анализа данных в реальном мире на Python. Кроме того, он преследует более широкую цель — стать самым мощным и гибким инструментом для анализа и обработки данных с открытым исходным кодом, доступным на любом языке. Он уже близок к достижению этой цели.

pandas хорошо подходит для многих типов данных:

  • Табличные данные с разнородными типами столбцов, как в таблице SQL или электронных таблицах Excel
  • Упорядоченные и неупорядоченные (не обязательно с фиксированной частотой) временные ряды.
  • Произвольные матричные данные (однородного или разнородного типа) с метками строк и столбцов
  • Любые другие формы набора данных наблюдений/статистических данных. Данные фактически могут вообще не быть помечены, чтобы быть помещенными в структуру данных pandas

Две основные структуры данных pandas, Series (одномерная) и DataFrame (двумерная), обрабатывают подавляющее большинство типичных случаев использования в финансах, статистике, социальных науках и многих областях техники. Для пользователей R, DataFrame предоставляет всё, что предоставляет data.frame R, и многое другое. pandas построен на основе NumPy и предназначен для хорошей интеграции в среду научных вычислений с многими другими сторонними библиотеками.

Вот лишь несколько задач, которые pandas выполняет хорошо:

  • Легкое обращение с пропущенными данными (представленными как NaN) в данных с плавающей точкой и в данных других типов
  • Изменяемость размера: столбцы могут быть вставлены и удалены из DataFrame и многомерных объектов
  • Автоматическое и явное выравнивание данных: объекты могут быть явно выровнены по набору меток, или пользователь может просто игнорировать метки и позволить Series, DataFrame, и т.д. автоматически выровнять данные для вычислений
  • Мощная, гибкая функция группировки для выполнения операций разделения-применения-объединения над наборами данных, как для агрегирования, так и для преобразования данных
  • Сделать простым преобразование нерегулярных данных с различными индексами в других структурах данных Python и NumPy в объекты DataFrame
  • Интеллектуальное срезовывание, индексация по образцам и подмножество больших наборов данных на основе меток
  • Интуитивное слияние и соединение наборов данных
  • Гибкая перестройка и перевод в сводные таблицы наборов данных
  • Иерархическое маркирование осей (возможно наличие нескольких меток на каждой метке)
  • Надежные инструменты ввода/вывода для загрузки данных из плоских файлов (CSV и разделители), файлов Excel, баз данных и сохранения/загрузки данных из сверхбыстрого формата HDF5
  • Функциональность, специфичная для временных рядов: генерация диапазонов дат и преобразование частоты, статистические показатели скользящего окна, линейные регрессии скользящего окна, смещение дат и отставание и т.д.

Многие из этих принципов направлены на устранение недостатков, часто возникающих при использовании других языков/сред научных исследований. Для специалистов по данным работа с данными обычно делится на несколько этапов: подготовка и очистка данных, их анализ/моделирование, а затем организация результатов анализа в форму, подходящую для построения графиков или табличного отображения. pandas — идеальный инструмент для всех этих задач.

Дополнительные замечания

  • pandas быстрый. Многие низкоуровневые алгоритмические элементы были значительно улучшены в коде Cython. Однако, как и в любом другом случае, обобщение обычно уменьшает производительность. Поэтому, если вы сосредоточитесь на одной функции для своего приложения, вы сможете создать более быстрый специализированный инструмент.
  • pandas является зависимостью statsmodels, что делает его важной частью экосистемы статистических вычислений на Python.
  • pandas широко используется в производственных финансовых приложениях.

Структуры данных

Измерения Название Описание
1 Series Одномерный меченый массив однородного типа
2 DataFrame Общая двумерная меченая, изменяемая по размеру табличная структура с потенциально разнородными типами столбцов

Зачем нужны несколько структур данных?

Лучший способ понять структуры данных pandas — как гибкие контейнеры для данных меньшей размерности. Например, DataFrame является контейнером для Series, а Series — контейнером для скаляров. Мы хотим иметь возможность добавлять и удалять объекты из этих контейнеров аналогично словарям.

Кроме того, мы хотим разумное поведение по умолчанию для общих функций API, которые учитывают типичную ориентацию временных рядов и данных поперечных срезов. При использовании ndarrays для хранения данных размерностью 2 и 3, на пользователя возлагается ответственность за рассмотрение ориентации набора данных при написании функций; оси считаются более или менее эквивалентными (за исключением случаев, когда C- или Fortran-непрерывность важны для производительности). В pandas оси предназначены для придания данным большего семантического смысла; то есть, для конкретного набора данных, скорее всего, есть «правильный» способ ориентировать данные. Цель — уменьшить количество умственных усилий, необходимых для кодирования преобразований данных в последующих функциях.

Например, с табличными данными (DataFrame) более семантически целесообразно думать об индексе (строках) и столбцах, а не об оси 0 и оси 1. Перебор столбцов DataFrame таким образом приводит к более удобочитаемому коду:

for col in df.columns:
    series = df[col]
    # do something with series

Изменяемость и копирование данных

Все структуры данных pandas изменяемы по значению (значения, которые они содержат, могут быть изменены), но не всегда изменяемы по размеру. Длина Series не может быть изменена, но, например, столбцы могут быть вставлены в DataFrame. Однако подавляющее большинство методов создают новые объекты и оставляют входные данные неизменными. В целом мы предпочитаем неизменяемость, где это целесообразно.

Получение поддержки

Первым пунктом для вопросов и идей по pandas является Github Issue Tracker. Если у вас есть общий вопрос, эксперты сообщества pandas могут ответить на Stack Overflow.

Сообщество

pandas в настоящее время активно поддерживается сообществом единомышленников по всему миру, которые посвящают своё ценное время и усилия, чтобы сделать pandas с открытым исходным кодом возможным. Благодарим всех наших участников.

Если вы заинтересованы в участии, пожалуйста, посетите руководство по участию.

pandas — проект, спонсируемый NumFOCUS. Это поможет обеспечить успех разработки pandas как проекта с открытым исходным кодом мирового класса и позволит сделать пожертвование проекту.

Управление проектом

Процесс управления, который проект pandas использовал неформально с момента его создания в 2008 году, формализован в документах по управлению проектом. Документы уточняют, как принимаются решения и как взаимодействуют различные элементы нашего сообщества, включая взаимоотношения между разработкой с открытым исходным кодом и работами, которые могут финансироваться коммерческими или некоммерческими организациями.

Wes McKinney — Благожелательный диктатор на всю жизнь (BDFL).

Разработчики

Список членов Координационного совета и более подробная информация находятся на странице с информацией о людях в хранилище управления.

Институциональные партнеры

Информация об основных институциональных партнерах находится на странице сайта pandas.

Лицензия

BSD 3-Clause License

Copyright (c) 2008-2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/getting_started/overview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API