python not found in axis_python not found in axis_fbprophet报错:KeyError: ‘[] not found in axis’...

近日在尝试使用fbprophet算法替换原来的ARIMA做时序预测,安装过程中踩过的坑先不提(后面有时间会另起一篇说明),此处单说一个很莫名其妙的问题。

在跑官方示例的时候:

import pandas as pd

import numpy as np

from fbprophet import Prophet

import matplotlib.pyplot as plt

df = pd.read_excel('example_wp_peyton_manning.xlsx')

df['y'] = np.log(df['y'])

playoffs = pd.DataFrame({

'holiday': 'playoff',

'ds': pd.to_datetime(['2008-01-13', '2009-01-03', '2010-01-16',

'2010-01-24', '2010-02-07', '2011-01-08',

'2013-01-12', '2014-01-12', '2014-01-19',

'2014-02-02', '2015-01-11', '2016-01-17',

'2016-01-24', '2016-02-07']),

'lower_window': 0,

'upper_window': 1,

})

superbowls = pd.DataFrame({

'holiday': 'superbowl',

'ds': pd.to_datetime(['2010-02-07', '2014-02-02', '2016-02-07']),

'lower_window': 0,

'upper_window': 1,

})

holidays = pd.concat((playoffs, superbowls)) # 季后赛和超级碗比赛特别日期

m = Prophet(holidays=holidays) # 指定节假日参数,其它参数以默认值进行训练

m.fit(df) # 对过去数据进行训练

future = m.make_future_dataframe(freq='D',periods=365) # 建立数据预测框架,数据粒度为天,预测步长为一年

forecast =m.predict(future)

m.plot(forecast) # 绘制预测效果图

plt.show()

m.plot_components(forecast) # 绘制成分趋势图

plt.show()

有可能会遇到这样一个报错:

Traceback (most recent call last):

File "e:/predict/nu_prodict_prophet.py", line 40, in

main()

File "e:/predict/nu_prodict_prophet.py", line 33, in main

forecast = m.predict(future)

File "D:Continuumanaconda3libsite-packagesfbprophetforecaster.py", line 1175, in predict

seasonal_components = self.predict_seasonal_components(df)

File "D:Continuumanaconda3libsite-packagesfbprophetforecaster.py", line 1290, in predict_seasonal_components

self.make_all_seasonality_features(df)

File "D:Continuumanaconda3libsite-packagesfbprophetforecaster.py", line 744, in make_all_seasonality_features

holidays = self.construct_holiday_dataframe(df['ds'])

File "D:Continuumanaconda3libsite-packagesfbprophetforecaster.py", line 467, in construct_holiday_dataframe

all_holidays = all_holidays.drop(index_to_drop)

File "D:Continuumanaconda3libsite-packagespandascoreframe.py", line 3694, in drop

errors=errors)

File "D:Continuumanaconda3libsite-packagespandascoregeneric.py", line 3108, in drop

obj = obj._drop_axis(labels, axis, level=level, errors=errors)

File "D:Continuumanaconda3libsite-packagespandascoregeneric.py", line 3158, in _drop_axis

raise KeyError('{} not found in axis'.format(labels))

KeyError: '[] not found in axis'

这个错并不是一定出现,至少在我百度到关于fbprophet的博客中,几乎都没有遇到同样问题的

后来还是在fbprophet的github上看到有人提了这个issue

这个报错只有在特定的python、pandas、fbprophet版本同时满足会出现(我的版本:python:3.6.5,pandas:0.23.0,fbprophet:0.5,所以我是有多幸运…………)

至于解决方案,issue中也给出了:https://github.com/facebook/prophet/issues/821#issuecomment-461996281

Just reset the index on the holidays dataframe before passing it in to fbprophet.

holiday_dataframe = holiday_dataframe.reset_index() # THE FIX

待续,后面的坑以后再记录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"not found in axis"这个报错是指在指定的轴中找不到某个值或标签。这可能是因为在数据集中没有找到对应的列、行或索引。解决这个问题的方法有多种。首先,你可以检查报错信息中提到的具体值或标签是否正确。如果不正确,你可以修改它们以匹配数据集中的实际值或标签。如果值或标签是正确的,但仍然报错,那么可能是因为数据集中确实没有对应的列、行或索引。在这种情况下,你可以尝试重新加载初始的csv文件,确保数据集中包含所需的列、行或索引。另外,你也可以使用DataFrame的drop函数来删除不需要的列或行,从而解决这个问题。例如,DataFrame.drop(labels=None, axis=0, index=None, columns=None, inplace=False)函数可以帮助你删除指定的列或行。希望这些方法能够帮助你解决报错问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python DataFrame drop函数出现keyError:***not found in axis的问题](https://blog.csdn.net/wardenjohn/article/details/121998817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [解决:KeyError: “[‘XXX‘] not found in axis“方案](https://blog.csdn.net/qq_44166127/article/details/117912835)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值