我有一个应用于此表的功能
F(x) = 1.5*x1 + 2*x2 - 1.5*x3
其中xi,i = 1,2,3是列值。
我的下表如下。
X1 | X2 | X3
------|------|------
20 |15 |12
30 |17 |24
40 |23 |36
我想要的输出如下所示,其中我将函数应用于每一行,获取每列中的值并迭代地将其应用于函数,然后将值作为总和并将另一列附加到数据帧上
X1 | X2 | X3 |F(X)
------|------|------|------
20 |15 |12 |42
30 |17 |24 |43
40 |23 |36 |52
有没有办法在Python 2.7中执行此操作?
答案 0 :(得分:4)
这样的东西?
df['F(x)']=df.mul([1.5,2,-1.5]).sum(1)
df
Out[1076]:
X1 X2 X3 F(x)
0 20 15 12 42.0
1 30 17 24 43.0
2 40 23 36 52.0
答案 1 :(得分:-1)
确定。找到一个示例代码来解决我的问题。
var1 = 1.5
var2 = 2
var3 = -1.5
def calculate_fx(row):
return (var1 * row['X1']) + (var2 * row['X2']) + (var3 * row['X3'])
#function_df is the predefined dataframe
function_df['F(X)'] = function_df.apply(calculate_fx, axis=1)
function_df