6

我是 Python 和 Facebook Prophet 的新手,所以这可能很简单,但我一直无法在网上找到答案。

我有一个 7 列的 csv 文件。一列包含一个带有每日增量的日期戳 ('ds') 列,其他 6 列('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.

任何见解/帮助将不胜感激。谢谢!

4

1 回答 1

8

抱歉,我想发表评论,但我还没有足够的声誉。请在循环中重命名您的列

subdf = subdf.rename(columns={'ds':'ds', col:'y'})

Prophet 强加了输入列命名为 ds(时间列)和 y(度量列)的严格条件。

于 2018-08-02T16:25:30.813 回答