Экосистема Pandas
Всё чаще создаются пакеты, построенные поверх pandas, для решения конкретных задач подготовки, анализа и визуализации данных. Это обнадеживает, поскольку означает, что pandas не только помогает пользователям справляться со своими задачами по обработке данных, но и предоставляет лучшую отправную точку для разработчиков, чтобы создавать мощные и более специализированные инструменты для работы с данными. Создание библиотек, дополняющих функциональность pandas, также позволяет развитию pandas оставаться сфокусированным на его первоначальных требованиях.
Это неполный список проектов, которые построены на pandas, чтобы предоставить инструменты в пространстве PyData. Для списка проектов, которые зависят от pandas, см. страницу использования libraries.io для pandas https://libraries.io/pypi/pandas/usage или выполните поиск на pypi по pandas https://pypi.org/search/?q=pandas.
Мы хотели бы сделать проще для пользователей поиск этих проектов. Если вам известны другие существенные проекты, которые, по вашему мнению, должны быть в этом списке, сообщите нам об этом.
Статистика и машинное обучение
Statsmodels
Statsmodels — ведущая Python-библиотека для «статистики и эконометрики», и у неё долгое время были особые отношения с pandas. Statsmodels предоставляет мощные возможности для статистического анализа, эконометрики, анализа и моделирования, выходящие за рамки функциональности pandas. Statsmodels использует объекты pandas в качестве базовых контейнеров данных для вычислений.
sklearn-pandas
Используйте pandas DataFrame в вашем конвейере машинного обучения scikit-learn.
Featuretools
Featuretools — Python-библиотека для автоматической генерации признаков, построенная на основе pandas. Она превосходно справляется с преобразованием временных и реляционных наборов данных в матрицы признаков для машинного обучения с использованием повторно используемых «примитивов» для генерации признаков. Пользователи могут вносить свои собственные примитивы на Python и делиться ими с сообществом.
Визуализация
Altair
Altair — это декларативная статистическая библиотека визуализации для Python. С помощью Altair вы можете больше времени уделять пониманию ваших данных и их смысла. API Altair прост, удобен и согласован и построен на мощном JSON-спецификации Vega-Lite. Эта элегантная простота создаёт красивые и эффективные визуализации с минимальным количеством кода. Altair работает с Pandas DataFrame.
Bokeh
Bokeh — это интерактивная библиотека визуализации Python для больших наборов данных, которая изначально использует новейшие веб-технологии. Её цель — предоставить элегантное и лаконичное создание новых графиков в стиле Protovis/D3, обеспечивая высокую производительность интерактивности с большими данными на тонких клиентах.
seaborn
Seaborn — библиотека визуализации Python, основанная на matplotlib. Она предоставляет высокоуровневый, ориентированный на набор данных интерфейс для создания привлекательных статистических графиков. Функции построения графиков в seaborn понимают объекты pandas и используют операции группирования pandas в своей внутренней работе, чтобы поддерживать лаконичное описание сложных визуализаций. Seaborn также выходит за пределы matplotlib и pandas, предоставляя возможность выполнения статистической оценки при построении графиков, агрегирования по наблюдениям и визуализации подгонки статистических моделей для выделения закономерностей в наборе данных.
yhat/ggpy
ggplot2 Хэдли Уикхэма — фундаментальный исследовательский пакет визуализации для языка R. Основанный на «The Grammar of Graphics», он предоставляет мощный, декларативный и чрезвычайно общий способ генерации индивидуальных графиков любого типа данных. Это действительно довольно невероятно. Различные реализации для других языков доступны, но надёжной реализации для пользователей Python долгое время не хватало. Несмотря на то, что проект yhat/ggpy всё ещё молод (по состоянию на январь 2014 г.), он быстро прогрессирует в этом направлении.
IPython Vega
IPython Vega использует Vega для создания графиков в Jupyter Notebook.
Plotly
API Python от Plotly https://plot.ly/python/ позволяет создавать интерактивные графики и обеспечивать их доступность в веб-среде. Карты, 2D, 3D и графики в режиме реального времени отрисовываются с использованием WebGL и D3.js. Библиотека поддерживает построение графиков непосредственно из pandas DataFrame и облачную совместную работу. Пользователи matplotlib, ggplot для Python и Seaborn могут преобразовывать графики в интерактивные веб-графики. Графики могут быть построены в IPython Notebook, отредактированы в R или MATLAB, изменены в графическом интерфейсе или встроены в приложения и панели управления. Plotly бесплатен для неограниченного совместного использования и имеет облачные, автономные или локальные варианты для частного использования.
QtPandas
Выделенная из основной библиотеки pandas, библиотека qtpandas позволяет визуализировать и обрабатывать DataFrame в приложениях PyQt4 и PySide.
IDE
IPython
IPython — это интерактивная командная оболочка и среда распределённых вычислений. Автодополнение IPython работает с методами Pandas и атрибутами, такими как столбцы DataFrame.
Jupyter Notebook / Jupyter Lab
Jupyter Notebook — это веб-приложение для создания Jupyter Notebook. Jupyter Notebook — это JSON-документ, содержащий упорядоченный список ячеек ввода/вывода, которые могут содержать код, текст, математические выражения, графики и богатые медиа. Jupyter Notebook можно преобразовать в ряд стандартных выходных форматов (HTML, HTML-презентационные слайды, LaTeX, PDF, ReStructuredText, Markdown, Python) через «Скачать как» в веб-интерфейсе и jupyter convert в оболочке.
Pandas DataFrame реализуют _repr_html_``and ``_repr_latex методы, которые используются Jupyter Notebook для отображения (сокращённых) HTML- или LaTeX-таблиц. Выход LaTeX правильно экранирован. (Примечание: HTML-таблицы могут быть или не быть совместимы с форматами выходных данных Jupyter, не являющимися HTML.)
См. Параметры и настройки и Доступные параметры для настроек pandas display..
quantopian/qgrid
qgrid — «интерактивная сетка для сортировки и фильтрации DataFrame в IPython Notebook», построенная с помощью SlickGrid.
Spyder
Spyder — кроссплатформенная IDE на основе PyQt, объединяющая функции редактирования, анализа, отладки и профилирования инструмента разработки с возможностями исследования данных, интерактивного выполнения, глубокого инспектирования и богатой визуализации научной среды, такой как MATLAB или Rstudio.
Его Variable Explorer позволяет пользователям просматривать, изменять и редактировать pandas Index, Series, и DataFrame объекты как «электронную таблицу», включая копирование и изменение значений, сортировку, отображение «тепловой карты», преобразование типов данных и многое другое. Объекты pandas также можно переименовывать, дублировать, добавлять новые столбцы, копировать/вставлять из/в буфер обмена (как TSV) и сохранять/загружать в/из файла. Spyder также может импортировать данные из различных текстовых и двоичных файлов или буфера обмена в новый pandas DataFrame с помощью сложного мастера импорта.
Большинство классов, методов и атрибутов данных pandas могут быть автозаполнены в редакторе Spyder https://docs.spyder-ide.org/editor.html и консоли IPython https://docs.spyder-ide.org/ipythonconsole.html, а панель справки Spyder https://docs.spyder-ide.org/help.html может извлекать и отображать документацию Numpydoc по объектам pandas в формате форматированного текста с помощью Sphinx — автоматически и по запросу.
API
pandas-datareader
pandas-datareader — это библиотека удалённого доступа к данным для pandas (PyPI:pandas-datareader). Она основана на функциональности, которая находилась в pandas.io.data и pandas.io.wb, но была разделена в версии v0.19. Подробнее см. в документации pandas-datareader:
Доступны следующие каналы данных:
- Google Finance
- Tiingo
- Morningstar
- IEX
- Robinhood
- Enigma
- Quandl
- FRED
- Fama/French
- World Bank
- OECD
- Eurostat
- TSP Fund Data
- Nasdaq Trader Symbol Definitions
- Stooq Index Data
- MOEX Data
quandl/Python
Quandl API для Python оборачивает Quandl REST API, чтобы возвращать Pandas DataFrames с индексами временных рядов.
pydatastream
PyDatastream — это Python-интерфейс к SOAP-API Thomson Dataworks Enterprise (DWE/Datastream), чтобы возвращать индексированные pandas DataFrames с финансовыми данными. Этот пакет требует действительных учетных данных для этого API (платный).
pandaSDMX
pandaSDMX — это библиотека для извлечения и получения статистических данных и метаданных, распространяемых в SDMX 2.1, стандарт ISO, широко используемый такими учреждениями, как статистические ведомства, центральные банки и международные организации. pandaSDMX может предоставлять наборы данных и связанные с ними структурные метаданные, включая потоки данных, списки кодов и определения структуры данных, как pandas Series или MultiIndexed DataFrame.
fredapi
fredapi — это Python-интерфейс к Federal Reserve Economic Data (FRED), предоставляемый Федеральным резервным банком Сент-Луиса. Он работает как с базой данных FRED, так и с базой данных ALFRED, которая содержит данные точечного значения (т. е. исторические версии данных). fredapi предоставляет оболочку на Python для HTTP-API FRED, а также несколько удобных методов для анализа и обработки данных точечного значения из ALFRED. fredapi использует pandas и возвращает данные в виде Series или DataFrame. Этот модуль требует ключа API FRED, который можно получить бесплатно на веб-сайте FRED.
Специализированные по области
Geopandas
Geopandas расширяет объекты pandas данных, чтобы включить географическую информацию, которая поддерживает геометрические операции. Если ваша работа включает карты и географические координаты, и вы любите pandas, вы должны внимательно изучить Geopandas.
END_OF_DOCUMENT_MARKERxarray
xarray предоставляет возможности работы с маркированными данными pandas для физических наук, предоставляя N-мерные варианты основных структур данных pandas. Он призван предоставить инструмент для анализа многомерных массивов, аналогичный и совместимый с pandas, а не табличных данных, для которых pandas превосходит.
Внеядерный доступ
Blaze
Blaze предоставляет стандартный API для выполнения вычислений с различными бэкендами в памяти и на диске: NumPy, Pandas, SQLAlchemy, MongoDB, PyTables, PySpark.
Dask
Dask — это гибкая библиотека для параллельного вычисления в аналитике. Dask предоставляет знакомый DataFrame интерфейс для внеядерных, параллельных и распределённых вычислений.
Dask-ML
Dask-ML позволяет выполнять параллельное и распределённое машинное обучение с использованием Dask вместе с существующими библиотеками машинного обучения, такими как Scikit-Learn, XGBoost и TensorFlow.
Koalas
Koalas предоставляет знакомый интерфейс pandas DataFrame поверх Apache Spark. Он позволяет пользователям использовать многоядерность на одном компьютере или кластере компьютеров для ускорения или масштабирования кода DataFrame.
Odo
Odo предоставляет единый API для перемещения данных между различными форматами. Он использует собственную read_csv pandas для CSV-ввода/вывода и использует множество существующих пакетов, таких как PyTables, h5py и pymongo, для перемещения данных между форматами, не использующими pandas. Его основанный на графах подход также расширяем конечными пользователями для пользовательских форматов, которые могут быть слишком специфическими для ядра odo.
Ray
Pandas на Ray — это библиотека DataFrame на ранней стадии, которая оборачивает Pandas и прозрачно распределяет данные и вычисления. Пользователю не нужно знать, сколько ядер имеет его система, а также не нужно указывать, как распределять данные. Фактически, пользователи могут продолжать использовать свои предыдущие блокноты Pandas, при этом ощущая значительное ускорение от Pandas на Ray, даже на одном компьютере. Для этого достаточно изменить оператор импорта, как показано ниже. После изменения оператора импорта вы готовы использовать Pandas на Ray так же, как и обычный Pandas.
# import pandas as pd import ray.dataframe as pd
Vaex
Всё чаще пакеты строятся поверх pandas для удовлетворения конкретных потребностей в подготовке данных, анализе и визуализации. Vaex — это библиотека Python для внеядерных DataFrame (аналогичных Pandas) для визуализации и исследования больших табличных наборов данных. Он может вычислять статистические данные, такие как среднее значение, сумма, количество, стандартное отклонение и т. д., на N-мерной сетке до миллиарда (109) объектов/строк в секунду. Визуализация выполняется с помощью гистограмм, графиков плотности и 3D визуализации объёма, позволяя интерактивно изучать большие данные. Vaex использует отображение в памяти, политику нулевого копирования в памяти и ленивые вычисления для достижения наилучшей производительности (не тратит память впустую).
- vaex.from_pandas
- vaex.to_pandas_df
Валидация данных
Engarde
Engarde — это лёгкая библиотека, используемая для явного указания предположений о наборах данных и проверки их истинности.
Расширения типов данных
Pandas предоставляет интерфейс для определения расширенных типов, чтобы расширить систему типов NumPy. Следующие библиотеки реализуют этот интерфейс для предоставления типов, отсутствующих в NumPy или pandas, которые хорошо работают с контейнерами данных pandas.
cyberpandas
Cyberpandas предоставляет расширенный тип для хранения массивов IP-адресов. Эти массивы могут храниться в Series и DataFrame pandas.
Доступ к атрибутам
Справочник проектов, предоставляющих расширенные атрибуты. Это предназначено для пользователей, чтобы обнаруживать новые атрибуты, и для авторов библиотек, чтобы согласовать пространство имён.
| Библиотека | Атрибут | Классы |
|---|---|---|
| cyberpandas | ip | Series |
| pdvega | vgplot |
Series, DataFrame
|
© 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/ecosystem.html