Функция eval
Функция eval из раздела opt применяется к DataFrame и позволяет выполнять строковые выражения с использованием синтаксиса Python. Она работает быстрее, чем стандартные методы, так как использует оптимизированные операции Pandas и может выполнять вычисления без создания промежуточных объектов. Первым параметром передаётся строка с выражением, вторым параметром можно указать движок выполнения (по умолчанию 'numexpr').
Синтаксис
df.eval(expr, inplace=False, engine='numexpr')
Пример
Выполним арифметическую операцию с колонками таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.eval('c = a + b')
print(res)
Результат выполнения кода:
a b c
0 1 10 11
1 2 20 22
2 3 30 33
3 4 40 44
4 5 50 55
Пример
Используем функцию с локальными переменными через параметр local_dict:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
multiplier = 2
res = df.eval('d = a * @multiplier')
print(res)
Результат выполнения кода:
a b d
0 1 10 2
1 2 20 4
2 3 30 6
3 4 40 8
4 5 50 10
Пример
Применим функцию для агрегации данных с использованием условных операторов:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.eval('result = (a > 2) & (b < 45)')
print(res)
Результат выполнения кода:
a b result
0 1 10 False
1 2 20 False
2 3 30 True
3 4 40 True
4 5 50 False
Смотрите также
-
функция
set_option,
которая устанавливает глобальные опции Pandas -
функция
get_option,
которая возвращает значение текущей опции Pandas -
функция
reset_option,
которая сбрасывает опции к значениям по умолчанию -
контекстный менеджер
option_context,
который временно изменяет опции в блоке кода