【问题标题】:Getting error as "name 'result' is not defined"由于“未定义名称'结果'”而出现错误
【发布时间】:2019-11-11 00:01:30
【问题描述】:

我正在运行这段代码:

import pandas as pd
from fbprophet import Prophet
data = pd.read_csv(r'C:\Users\XXX.csv')
ids = data['id'].unique()
series = []
for id in ids:
   f = data[data['id'] == id]
   frames.append(f)

def run_prophet(timeserie):
    model = Prophet(yearly_seasonality=False,daily_seasonality=False)
    model.fit(timeserie)
    forecast = model.make_future_dataframe(periods=90, include_history=False)
    forecast = model.predict(forecast)
    return forecast

results = list(map(lambda timeserie: run_prophet(timeserie), series))

result[0] 
result[1] 

但在 result[0] 之后,我收到错误“未定义名称‘结果’”。我能做些什么?谢谢

数据的结构是:

id        ds        y
id_1  2017-01-01    11
id_2  2017-01-01    13

【问题讨论】:

  • 您从未定义/设置变量“结果”。这个错误并不奇怪。

标签: python facebook-prophet


【解决方案1】:

变量应该命名为“results”而不是“result”。另外我应该指出,pandas 有一个 apply 方法https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.apply.html

【讨论】:

  • 谢谢。更改了它,现在我收到错误“列表索引超出范围”。你知道我能做什么吗?
  • 看起来您将一个 lambda 函数映射到您的系列列表,但您提供的代码显示系列列表为空,因此没有可索引的内容。也许你的意思是 series.append(f) 而不是 frames.append(f)?
【解决方案2】:

让你的 2 最后一行替换为:

results[0] 
results[1]

【讨论】:

  • 谢谢。更改了它,现在我收到错误“列表索引超出范围”。你知道我能做什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2016-08-27
  • 2021-06-05
  • 2015-01-28
  • 1970-01-01
相关资源
最近更新 更多