使用 Pandas DataReader 获取“Adj Close”

Evy*_*555 2 python datareader yahoo-finance pandas

我刚刚从pandas.io 切换到pandas_datareader,我在获取调整后的收盘价时遇到了困难。在我可以使用以下代码之前

pd.io.data.get_data_yahoo(stock, start, end)['Adj Close']
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用 datareader(作为 Web 导入)时,它不起作用。

web.get_data_yahoo(stock, start, end)['Adj Close'] 
Run Code Online (Sandbox Code Playgroud)

我试图找到文档以查看是否有 pandas_datareader 使用的新参数,但我没有运气。无论如何,是否可以使用新的 Pandas 库提取调整后的关闭数据?

Max*_*axU 5

我会为此使用DataReader

In [61]: from pandas_datareader.data import DataReader

In [62]: DataReader('AAPL', 'yahoo', '2016-06-25', '2016-06-30')['Adj Close']
Out[62]:
Date
2016-06-27    92.040001
2016-06-28    93.589996
2016-06-29    94.400002
Name: Adj Close, dtype: float64
Run Code Online (Sandbox Code Playgroud)

实际上你的代码也能正常工作(pandas 0.18.1 和 pandas_datareader 0.2.1):

In [63]: import pandas_datareader.data as web

In [64]: web.get_data_yahoo('AAPL', '2016-06-25', '2016-06-30')
Out[64]:
                 Open       High        Low      Close    Volume  Adj Close
Date
2016-06-27  93.000000  93.050003  91.500000  92.040001  45489600  92.040001
2016-06-28  92.900002  93.660004  92.139999  93.589996  39311500  93.589996
2016-06-29  93.970001  94.550003  93.629997  94.400002  36427800  94.400002

In [65]: web.get_data_yahoo('AAPL', '2016-06-25', '2016-06-30')['Adj Close']
Out[65]:
Date
2016-06-27    92.040001
2016-06-28    93.589996
2016-06-29    94.400002
Name: Adj Close, dtype: float64
Run Code Online (Sandbox Code Playgroud)