将数据帧中的行相乘,然后将它们汇总到Python中

时间:2017-10-31 01:15:07

标签: python-2.7 pandas

我有一个应用于此表的功能

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中执行此操作?

2 个答案:

答案 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