Spec-Zone.ru › pandas 0.21

pandas.DataFrame.query

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

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

Параметры:

expr : строка

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

inplace : bool

Является ли запрос для модификации данных на месте или возвращения измененной копии

Добавлен в версии 0.18.0.

kwargs : dict

См. документацию для 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.21.1/generated/pandas.DataFrame.query.html

Spec-Zone.ru

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