Spec-Zone.ru › pandas 0.23

pandas.DataFrame.eval

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

Оцените строку, описывающую операции над столбцами DataFrame.

Операции выполняются только над столбцами, а не над конкретными строками или элементами. Это позволяет eval выполнить произвольный код, что может сделать вас уязвимыми к инъекции кода, если вы передаёте в эту функцию пользовательский ввод.

Параметры:

expr : str

Строка выражения для оценки.

inplace : bool, по умолчанию False

Если выражение содержит присваивание, то выполняется ли операция на месте и изменяется ли существующий DataFrame. В противном случае возвращается новый DataFrame.

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

kwargs : dict

См. документацию для eval() для получения подробной информации о ключевых словах, принимаемых query().

Возвращает:

ndarray, скаляр или pandas объект

Результат оценки.

См. также

DataFrame.query
Оценивает булево выражение для запроса столбцов фрейма.
DataFrame.assign
Может оценить выражение или функцию для создания новых значений столбца.
pandas.eval
Оценить строку выражения Python с использованием различных бэкэндов.

Примечания

Для получения более подробной информации см. документацию API для eval(). Для подробных примеров см. улучшение производительности с eval.

Примеры

>>> df = pd.DataFrame({'A': range(1, 6), 'B': range(10, 0, -2)})
>>> df
   A   B
0  1  10
1  2   8
2  3   6
3  4   4
4  5   2
>>> df.eval('A + B')
0    11
1    10
2     9
3     8
4     7
dtype: int64

Присваивание разрешено, хотя по умолчанию исходный DataFrame не изменяется.

>>> df.eval('C = A + B')
   A   B   C
0  1  10  11
1  2   8  10
2  3   6   9
3  4   4   8
4  5   2   7
>>> df
   A   B
0  1  10
1  2   8
2  3   6
3  4   4
4  5   2

Используйте inplace=True для изменения исходного DataFrame.

>>> df.eval('C = A + B', inplace=True)
>>> df
   A   B   C
0  1  10  11
1  2   8  10
2  3   6   9
3  4   4   8
4  5   2   7

© 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.eval.html

Spec-Zone.ru

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