我从雅虎财经获得了如下实时数据:
ndx = yf.Ticker("NDX")
# get stock info
print(ndx.info)
# get historical market data
hist = ndx.history(period="1825d")
I downloaded it and Exported to CSV file as follows:
#Download stock data then export as CSV
df = yf.download("NDX", start="2016-01-01", end="2022-11-02")
df.to_csv('ndx.csv')
Viewed the data as follows:
df = pd.read_csv("ndx.csv")
df这些数据如图片所示:

问题..。每当我尝试使用Date列时,它都会将错误抛出为KeyError 'Date‘。这是我的自动Arima模型和抛出的错误。请帮帮忙。

抛错


我希望能够使用日期列。我试图解析Date列,但抛出了相同的错误。我首先需要帮助解析数据,以便将日期格式或字符串转换为日期格式或字符串。谢谢
发布于 2022-11-03 16:39:36
看到人们试图学习财务分析总是很棒的:
在我进入解决方案之前,
因此,我假设变量“”只是对pd.read_csv('ndx.csv')的调用,因为屏幕截图就是这样的。
首先,在读取文件后,始终检查列的数据类型:(假设您使用的是木星)
orig_df = pd.read_csv('ndx.csv')
orig_df.dtypes

如何修复和运行:
from statsmodels.api import tsa
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime as dt, timedelta
orig_df = pd.read_csv('ndx.csv', parse_dates=['Date'], index_col=0)
model = tsa.arima.ARIMA(np.log(orig_df['Close']), order=(10, 1, 10))
fitted = model.fit()
fc = fitted.get_forecast(5)
fc = (fc.summary_frame(alpha=0.05))
fc_mean = fc['mean']
fc_lower = fc['mean_ci_lower']
fc_upper = fc['mean_ci_upper']
orig_df.iloc[-50:,:].plot(y='Close', title='Nasdaq 100 Closing price', figsize=(10, 6))

# call orig_df.index[-1] for most recent trading day, not just today
future_5_days = [orig_df.index[-1] + timedelta(days=x) for x in range(5)]
plt.plot(future_5_days, np.exp(fc_mean), label='mean_forecast', linewidth=1.5)
plt.fill_between(future_5_days,
np.exp(fc_lower),
np.exp(fc_upper),
color='b', alpha=.1, label='95% confidence')
plt.title('Nasdaq 5 Days Forecast')
plt.legend(loc='upper left', fontsize=8)
plt.show()

https://stackoverflow.com/questions/74305842
复制相似问题