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