pandas.DataFrame.eval#
- DataFrame.eval(expr, *, inplace=False, **kwargs)[источник]#
Вычислить строку, описывающую операции над столбцами DataFrame.
Работает только со столбцами, не с конкретными строками или элементами. Это позволяет eval для выполнения произвольного кода, что может сделать вас уязвимым для внедрения кода, если вы передаете пользовательский ввод в эту функцию.
- Параметры:
- exprstr
Строка выражения для вычисления.
- inplacebool, по умолчанию False
Если выражение содержит присваивание, выполнять ли операцию на месте и изменять существующий DataFrame. В противном случае возвращается новый DataFrame.
- **kwargs
См. документацию для
eval()для полной информации о ключевых аргументах, принимаемыхquery().
- Возвращает:
- ndarray, скаляр, объект pandas или None
Результат вычисления или None, если
inplace=True.
Смотрите также
DataFrame.queryВычисляет логическое выражение для запроса к столбцам фрейма.
DataFrame.assignМожет оценить выражение или функцию для создания новых значений столбца.
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
Несколько столбцов можно назначить с использованием многострочных выражений:
>>> df.eval( ... ''' ... C = A + B ... D = A - B ... ''' ... ) A B C D 0 1 10 11 -9 1 2 8 10 -6 2 3 6 9 -3 3 4 4 8 0 4 5 2 7 3