Spec-Zone.ru › pandas 0.24

Обзор пакета

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

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

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

Две основные структуры данных pandas, Series (одномерная) и DataFrame (двумерная), обрабатывают подавляющее большинство типичных случаев использования в финансах, статистике, социальных науках и многих областях техники. Для пользователей R, DataFrame предоставляет всё, что обеспечивает R’s data.frame и многое другое. 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 для хранения двумерных и трехмерных данных, на пользователя возлагается ответственность учитывать ориентацию набора данных при написании функций; оси считаются более или менее эквивалентными (за исключением случаев, когда важность 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 году, формализован в документах управления проектом. Документы разъясняют, как принимаются решения и как взаимодействуют различные элементы сообщества, включая отношения между совместной разработкой с открытым исходным кодом и работой, которая может финансироваться коммерческими или некоммерческими организациями.

Вес Маккинни является благодетельным диктатором на всю жизнь (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.24.2/getting_started/overview.html

Spec-Zone.ru

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