Python按组创建线性回归预测pandas数据帧

时间:2017-01-18 18:44:21

标签: python dataframe linear-regression

我想基于线性回归循环创建一个python pandas数据帧列

这是源数据pandas dataframe df:

campaign    |     date     |    shown 
   A           2015-10-11       363563
   A           2015-10-12       345657
   A           2015-10-13       345346
   B           2015-10-11       23467
   B           2015-10-15       357990
   C           2015-10-11       97808

我想使用线性回归,并为每个组预测2015-11-30显示的数量。

所以这是我正在寻找的最终新预测数据框:

 campaign |   Prediction(2015-11-30)
      A           ...
      B           ...
      C           ...

到目前为止我的代码:

df['date_ordinal'] = df['date'].apply(lambda x: x.toordinal())
model = LinearRegression()
X = df[['date_ordinal']]
y = df.shown
model.fit(X, y)   

df_results = pd.DataFrame()
for (group, df_gp) in df.groupby('campaign'):
   df_results['campaign'] = group
   X=df_gp[['date_ordinal']]
   y=df_gp.shown
   model.fit(X,y)
   coefs = list(zip(X.columns, model.coef_))
   df_results['prediction'] = model.predict(735947)

df_results

然而,当我运行此代码时,我只得到一个预测,我没有得到一个包含一列的数据帧" group"以及它旁边的预测值。

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

{{1}}

根据这里的答案:add one row in a pandas.DataFrame逐行添加行不是最有效的解决方案。正如你在anwers中看到的那样,必须在索引处插入数据。