Python 如何添加包含预测的新列?

Python 如何添加包含预测的新列?,python,pandas,time-series,forecasting,arima,Python,Pandas,Time Series,Forecasting,Arima,我试图用ARIMA模型进行预测。我的问题是,如何创建一个包含未来新日期预测值的新列(基于未来的步骤)…这是我的代码: import numpy as np import pandas as pd from pandas import datetime import matplotlib.pylab as plt %matplotlib inline df = pd.read_csv("Desktop/Daten/probe.csv",sep=";") df["Monthes"] = pd.to_

我试图用ARIMA模型进行预测。我的问题是,如何创建一个包含未来新日期预测值的新列(基于未来的步骤)…这是我的代码:

import numpy as np
import pandas as pd
from pandas import datetime
import matplotlib.pylab as plt
%matplotlib inline
df = pd.read_csv("Desktop/Daten/probe.csv",sep=";")
df["Monthes"] = pd.to_datetime(dataset["Monthes"], infer_datetime_format=True)
indexedDf = df.set_index(["Monthes"])
from statsmodels.tsa.arima_model import ARIMA

model = ARIMA(indexedDf, order =(1,1,2))
results_ARIMA = model.fit(disp=0)
n = 120 # 1 year Forecasting
result = results_ARIMA.forecast(steps=n)[0]


如何将预测结果与新的n个月一起放入新选项卡中

假设您希望将此列添加到数据帧(
df
),下面是您需要执行的操作

df['result`]=result
如果要将此结果写入excel电子表格,并将工作表重命名为结果日期

N=[30,60,90,120]
使用pd.ExcelWriter('output.xlsx')作为编写器:
#如果要将多个预测写入
#相同的文件,但在不同的电子表格中
对于n中的n:
结果=结果\u ARIMA.预测(步骤=n)[0]
df['result']=结果
df.to_excel(writer,sheet\u name='sheet\u n={}.格式(n))
如果您想用明天的日期(2019-11-22)命名工作表,只需更改
sheet\u name='2019-11-22'

如何确定明天的日期?
导入日期时间
定义明天():
return datetime.date.today()+datetime.timedelta(天=1)
打印(明天())
将日期转换为字符串:
dates.apply(lambda x:x.strftime(“%Y-%m-%d”))
我鼓励您查看有关熊猫的更多信息。ExcelWriter

您可以这样做:

假设您的数据帧如下所示:

         date  spend
0  2019-11-10    800
1  2019-11-11    800
2  2019-11-12    300
3  2019-11-13    150
4  2019-11-14    300
5  2019-11-15    500
6  2019-11-16    800
7  2019-11-17    600
8  2019-11-18    400
现在,您终于可以将其连接/附加到数据帧:

df = pd.concat([df, new_df]).reset_index(drop=True)
输出

         date  spend
0  2019-11-10    800
1  2019-11-11    800
2  2019-11-12    300
3  2019-11-13    150
4  2019-11-14    300
5  2019-11-15    500
6  2019-11-16    800
7  2019-11-17    600
8  2019-11-18    400
9  2019-11-19    94.944353
10 2019-11-20    64.813264
11 2019-11-21    56.319640
12 2019-11-22    81.696114
13 2019-11-23    43.533978

你能显示数据帧吗?你有预测的日期吗?您可以使用
pd.date\u range()
创建日期范围,包括预测和生成的新日期,然后附加到原始数据框。数据框如下所示:Monthes Sales 2017-01-01 01 01:15:00 4.615121 2017-02-01 02:30:00 4.499810 2017-03-01 15:00 3.583519 2017-04-01 01 01:15:00 4.553877..... ...... ........ 我已经得到了基于步骤数的预测结果,我想将预测附加到合适的日期。。感谢您的回复它适用于以下句子:t=pd.date\u range(start=(df.Monthes[len(dataset)-1]),periods=n,但是如何将t和结果附加在一起呢?感谢使用pd.concat()组合它们,并确保两者的长度相同。我已经添加了一个答案“新选项卡”是什么意思?您正在尝试将此结果写入excel电子表格吗?您好@CyperherX。是的,我想写结果,但要有合适的日期。例如,我想预测明天的天气,所以结果必须与明天的日期一致。。希望你能理解我的问题,谢谢你replying@AhmedMadiouni让我知道这是否是你想要的。非常感谢!!我使用:t=pd.date\u range(start=(df.Monthes[len(df)-1]),periods=n创建了一个新的日期。你知道如何将日期与结果结合起来吗?要获取包含日期和预测的数组?@Ahmeddadiouni请更新问题以反映这些细节。我已经包括了将日期转换为字符串所需的操作。但是,让我们把问题限制在这里。如果您还有其他需要了解的问题来解决您的总体需求,请打开一个新问题/搜索一个已经回答您的问题的问题。
         date  spend
0  2019-11-10    800
1  2019-11-11    800
2  2019-11-12    300
3  2019-11-13    150
4  2019-11-14    300
5  2019-11-15    500
6  2019-11-16    800
7  2019-11-17    600
8  2019-11-18    400
9  2019-11-19    94.944353
10 2019-11-20    64.813264
11 2019-11-21    56.319640
12 2019-11-22    81.696114
13 2019-11-23    43.533978