最佳答案
我想使用 pd.eval
对一个或多个数据框架列执行算术运算。具体来说,我想移植下面的代码来计算一个公式:
x = 5
df2['D'] = df1['A'] + (df1['B'] * x)
用 pd.eval
编码。使用 pd.eval
的原因是我想自动化许多工作流程,因此动态创建它们对我来说非常有用。
我的两个输入 DataFrames 是:
import pandas as pd
import numpy as np
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
的 engine
和 parser
参数,以确定如何最好地解决我的问题。我已经通过了 文件,但区别并没有向我明确。
df2
?x
作为参数传递?