Дано два кадра данных
np.random.seed(0)
df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
df1
A B C D
0 5 0 3 3
1 7 9 3 5
2 2 4 7 6
3 8 8 1 6
4 7 7 8 1
df2
A B C D
0 5 9 8 9
1 4 3 0 3
2 5 0 2 3
3 8 1 3 3
4 3 7 0 1
Я хотел бы выполнить арифметику для одного или нескольких столбцов, используя pd.eval
. В частности, я хотел бы перенести следующий код:
x = 5
df2['D'] = df1['A'] + (df1['B'] * x)
... кодировать, используя eval
. Причина использования eval
состоит в том, что я хотел бы автоматизировать многие рабочие процессы, поэтому их динамическое создание будет полезно для меня.
Я пытаюсь лучше понять аргументы engine
и parser
, чтобы определить, как лучше всего решить мою проблему. Я ознакомился с документацией, но мне это не объяснили.
- Какие аргументы следует использовать, чтобы мой код работал с максимальной производительностью?
- Есть ли способ присвоить результат выражения обратно
df2
? - Кроме того, чтобы усложнить задачу, как передать
x
в качестве аргумента внутри строкового выражения?