pandas.DataFrame.eval
-
DataFrame.eval(expr, inplace=False, **kwargs)[source] -
Оцените строку, описывающую операции над столбцами DataFrame.
Операции выполняются только над столбцами, а не над конкретными строками или элементами. Это позволяет
evalвыполнять произвольный код, что может сделать вас уязвимыми к инъекциям кода, если вы передадите пользовательский ввод в эту функцию.Параметры: -
expr : str -
Строка выражения для оценки.
-
inplace : bool, default 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.24.2/reference/api/pandas.DataFrame.eval.html