gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:43:36 25 4
gpt4 key购买 nike

我想创建一个基于线性回归循环的 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

但是,当我运行此代码时,我只得到一个预测,我没有得到具有一列“组”及其旁边的预测值的数据帧。

谢谢!

最佳答案

试试这个:

groups = []
results = []
for (group, df_gp) in df.groupby('campaign'):
X=df_gp[['date_ordinal']]
y=df_gp.shown
model.fit(X,y)
coefs = list(zip(X.columns, model.coef_))
results.append(model.predict(735947)[0])
groups.append(group)

df_results = pd.DataFrame({'campaign':groups, 'prediction':results})

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

关于Python按组创建线性回归预测pandas数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41727110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com