输入fit1=ExponentialSmoothing(df_.df_,freq='M').fit()报错AttributeError: 'DataFrame' object has no attribute 'df_'
时间: 2023-12-14 11:03:07 浏览: 132
根据报错信息,你使用了一个名为 `df_` 的 DataFrame 对象,但是该对象并没有 `df_` 属性。因此,你需要检查一下你的代码,确认是否正确地定义了 `df_`,或者是否在定义之后修改了其属性。如果你没有定义 `df_`,那么可能是你想引用另一个 DataFrame 对象的 `df_` 属性,但是你却使用了错误的变量名。请检查一下你的代码,并确认变量名的正确性。
相关问题
fit1=ExponentialSmoothing(m2.m2,freq='M').fit()
这行代码利用 statsmodels 库中的 ExponentialSmoothing 类对 m2 列进行指数平滑操作,并将平滑后的结果存储在 fit1 变量中。
具体来说,代码中的参数说明如下:
1. m2.m2: 表示要进行指数平滑的数据列,这里是 m2 列。
2. freq='M': 表示数据按月份进行采样,即数据频率为月度数据。
fit() 方法是执行指数平滑操作的方法,它返回一个 ExponentialSmoothing 对象,该对象包含了平滑后的结果以及其他相关信息。
总之,该代码的目的是利用指数平滑方法对 m2 列进行平滑,并将结果存储在 fit1 变量中。
fit2=ExponentialSmoothing(df_.df_,trend="add",freq='M').fit() fit2.forecast(1) fit2.forecast(3)x明明想要从2023/4/30开始预测,为什么输出的显示成2020年?
根据你提供的代码,我猜测你使用的是Python中Statsmodels库中的ExponentialSmoothing方法进行时间序列预测。在这个方法中,如果你没有显式地指定预测的时间范围,它会默认使用时间序列中最后一个时间点作为开始预测的时间点,并根据模型中设置的频率(freq)进行预测。因此,你需要确保在调用 `fit2.forecast()` 方法时,将要预测的时间范围作为参数传递给它,例如:
```python
fit2.forecast(3, start='2023-04-30', freq='M')
```
这样就可以从2023/4/30开始预测了。
阅读全文