Spec-Zone.ru › pandas 0.20

pandas.DataFrame.query

DataFrame.query(expr, inplace=False, **kwargs) [source]

Запрос к столбцам фрейма с помощью булевого выражения.

Новая в версии 0.13.

Параметры:

expr : строка

Строка запроса для вычисления. Вы можете ссылаться на переменные в окружении, добавляя перед ними символ «@», например @a + b.

inplace : bool

Указывает, должен ли запрос изменять данные на месте или вернуть измененную копию

Новая в версии 0.18.0.

kwargs : dict

Полные сведения о ключевых аргументах, принимаемых pandas.eval(), см. в документации pandas.eval() для DataFrame.query().

Возвращает:

q : DataFrame

См. также

pandas.eval, DataFrame.eval

Примечания

Результат вычисления этого выражения сначала передаётся в DataFrame.loc, и если это не удается из-за многомерного ключа (например, DataFrame), то результат будет передан в DataFrame.__getitem__().

Этот метод использует функцию верхнего уровня pandas.eval() для вычисления переданного запроса.

Метод query() по умолчанию использует немного изменённый синтаксис Python. Например, операторы & и | (побитовые) имеют приоритет своих булевых аналогов, and и or. Это является синтаксически допустимым Python, однако семантика отличается.

Вы можете изменить семантику выражения, передав ключевой аргумент parser='python'. Это навязывает ту же семантику, что и при вычислении в пространстве Python. Аналогично, вы можете передать engine='python' для вычисления выражения с использованием самого Python в качестве бэкенда. Это не рекомендуется, так как это неэффективно по сравнению с использованием numexpr в качестве движка.

Атрибуты DataFrame.index и DataFrame.columns экземпляра DataFrame по умолчанию размещаются в пространстве имён запроса, что позволяет рассматривать индекс и столбцы фрейма как столбец в фрейме. Идентификатор index используется для индекса фрейма; вы также можете использовать имя индекса для его идентификации в запросе.

Дополнительные сведения и примеры см. в документации query в индексировании.

Примеры

>>> from numpy.random import randn
>>> from pandas import DataFrame
>>> df = DataFrame(randn(10, 2), columns=list('ab'))
>>> df.query('a > b')
>>> df[df.a > df.b]  # same result as the previous expression

© 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.20.3/generated/pandas.DataFrame.query.html

Spec-Zone.ru

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