РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
39 of 687 menu

Метод eval

Метод eval применяется к DataFrame и позволяет выполнять строковые выражения, используя столбцы таблицы как переменные. Первым параметром передаётся строка с выражением, вторым параметром можно указать локальные или глобальные переменные. Метод возвращает новый объект DataFrame или Series с результатом вычислений.

Синтаксис

df.eval(expr[, inplace=False])

Пример

Давайте создадим новый столбец, сложив значения из существующих столбцов:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) df['c'] = df.eval('a + b') print(df)

Результат выполнения кода:

a b c 0 1 10 11 1 2 20 22 2 3 30 33 3 4 40 44 4 5 50 55

Пример

Выполним более сложное выражение с умножением и вычитанием:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.eval('a * 2 + b / 10') print(res)

Результат выполнения кода:

0 3.0 1 6.0 2 9.0 3 12.0 4 15.0 dtype: float64

Пример

Используем локальные переменные в выражении. Передадим их через параметр local_dict:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) multiplier = 3 res = df.eval('a * @multiplier + b') print(res)

Результат выполнения кода:

0 13 1 26 2 39 3 52 4 65 dtype: int64

Пример

Изменим существующий столбец, используя параметр inplace для сохранения результата:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) df.eval('a = a * 2', inplace=True) print(df)

Результат выполнения кода:

a b 0 2 10 1 4 20 2 6 30 3 8 40 4 10 50

Смотрите также

  • метод query,
    который фильтрует строки по условию
  • метод assign,
    который создаёт новые столбцы
  • метод apply,
    который применяет функцию к данным
  • метод map,
    который преобразует значения через функцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить