将DF行乘以系数

时间:2018-06-06 20:02:34

标签: python pandas statsmodels

我想存储statsmodels.api模型的系数以备将来使用(所以我不必每次都运行模型)。当我得到一个我想对其进行预测的新数据帧时,我希望能够将数据帧的每一行乘以系数(即model.params)。然后,我将对每行*系数的结果求和,以获得该行的预测。但是,当我尝试时,它似乎对我不起作用:

preds = []
for row in df.iterrows():
    preds.append((model.params*row).sum())

编辑:示例

DF:

Height    Weight    Color
  6         5         3
  6         2         4
  9         1         9
  10        3         3

系数:

身高:-1.6403

重量:2.0435

颜色:300.4532

2 个答案:

答案 0 :(得分:2)

我会考虑做类似的事情:

df.dot(model.params)

这会计算DataFrame的每一行上的点积。

答案 1 :(得分:0)

好像你需要:

coeff_dict = {
        'Height': -1.6403,
        'Weight': 2.0435,
        'Color': 300.4532
 }
df.assign(prediction=df.assign(**coeff_dict).mul(df).sum(axis=1))

输出:

    Height  Weight Color  prediction
0       6       5      3    901.7353
1       6       2      4   1196.0580
2       9       1      9   2691.3596
3      10       3      3    891.0871