与晨星合作试图获取股票数据,但[' Adj Close']不起作用

时间:2018-04-04 22:29:51

标签: python pandas matplotlib

我只是想为股票分析项目获取数据,并遇到了Adj Close的问题。每当我使用[' Adj Close']运行程序时,我会收到一堆错误信息,但在底部则显示Key Error:' Adj Close'。我的代码就在这里,并且想知道我是否能得到一些反馈。

import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web

style.use('ggplot')
##start = dt.datetime(2018,3,3)
##end = dt.datetime.now()

##df = web.DataReader('TSLA', 'morningstar', start, end)
##df.reset_index(inplace=True)
##df.set_index('Date',inplace=True)
##df = df.drop('Symbol',axis=1)
##df.to_csv('tsla.csv')
df = pd.read_csv('tsla.csv', parse_dates=True, index_col=0)
####print(df.head())
##df['Adj Close'].plot()
##plt.show()

 df['100mma'] = df['Adj Close'].rolling(window=100, min_periods=0).mean()
##df.dropna(inplace=True)
print(df.Head())

ax1  = plt.subplot2grid((6,1), (0,0), rowspan=5, colspan=1)
ax1  = plt.subplot2grid((6,1), (5,0), rowspan=1, colspan=1)
ax1.plot(df.index, df['Adj Close'])
ax1.plot(df.index, df['100ma'])
ax2.bar(df.index, df['Volume'])
plt.show()

2 个答案:

答案 0 :(得分:0)

关键错误:' Adj Close'是你的问题的答案

KeyError通常意味着密钥不存在。那么,你确定路径密钥存在吗?

来自官方python文档:

异常KeyError

在现有密钥集中找不到映射(字典)密钥时触发。

例如:

mydict = {'a':'1','b':'2'}
mydict['a']
'1'
mydict['c']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'c'

答案 1 :(得分:0)

只需用关闭列替换Adj close列,因为在morningstar中使用close列作为adj close

df['100mma'] = df['Adj Close'].rolling(window=100, min_periods=0).mean()

替换为

df['100mma'] = df['Close'].rolling(window=100, min_periods=0).mean()