Spec-Zone.ru › pandas 0.23

pandas.DataFrame.query

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

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

Параметры:

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 используется для индекса фрейма; вы также можете использовать имя индекса для его идентификации в запросе. Обратите внимание, что ключевые слова Python не могут использоваться как идентификаторы.

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

Примеры

>>> from numpy.random import randn
>>> from pandas import DataFrame
>>> df = pd.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.23.4/generated/pandas.DataFrame.query.html

Spec-Zone.ru

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