我是Python和Facebook Prophet的新手,所以这也许很容易,但是我一直无法在线找到答案。
我有一个7列的csv文件。一列包含带有每日增量的日期戳('ds')列,其他六列('y1','y2','y3'等)包含6个变量,其值与日期戳对齐。
我不想创建六个不同的两列csv文件并运行Prophet六个不同的时间(一次仅预测一个变量),而是想找到一种方法来一次预测所有六个变量。这是我正在尝试的:
df = pd.read.csv('example_file.csv')
cols = ['y1','y2','y3','y4','y5','y6']
results = []
for col in cols:
subdf = df[['ds', col]].dropna()
m = Prophet()
m.fit(subdf)
result = m.predict(m.make.future.dataframe(periods = 90))
results.append(result)
df.predict = pd.concat(results, axis=1)
df.predict.to_csv('example_file.csv')
运行它时,出现以下错误:
ValueError: Dataframe must have columns 'ds' and 'y' with the dates and values respectively.
任何见解/帮助将不胜感激。谢谢!
答案 0 :(得分:2)
对不起,我想发表评论,但我没有足够的声誉。请在循环中重命名您的列
subdf = subdf.rename(columns={'ds':'ds', col:'y'})
先知强加了一个严格的条件,即输入列分别命名为ds(时间列)和y(公制列)。