Spec-Zone.ru › pandas 0.24

pandas.DataFrame.query

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

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

Параметры:
expr : string

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

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

Примеры

>>> df = pd.DataFrame(np.random.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.24.2/reference/api/pandas.DataFrame.query.html

Spec-Zone.ru

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