使用pandas DataRead获取“Adj Close”

2024-05-14 10:15:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚从pandas.io切换到pandas_datareader,我很难调整收盘价。在我使用下面的代码之前

pd.io.data.get_data_yahoo(stock, start, end)['Adj Close']

现在,当我尝试数据读取器(作为web导入)时,它不起作用。

web.get_data_yahoo(stock, start, end)['Adj Close'] 

我试图找到文档,看看pandas_datareader是否使用了一个新的参数,但是我没有运气。有没有使用新的pandas库拉入刚刚调整的Close数据?


Tags: 数据代码iowebpandasclosedataget
3条回答

从雅虎那里读到的东西坏了。如果可以的话,使用谷歌吧。例如:

df = web.DataReader("AAPL", 'google', start, end)

这个解决方案不再可行。当我跑步时:

import pandas_datareader.data as web
web.get_data_yahoo('AAPL')

这将产生:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='ichart.finance.yahoo.com', port=80): Max retries exceeded with url: /table.csv?a=0&ignore=.csv&s=AAPL&b=1&e=7&d=6&g=d&f=2017&c=2010 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))

看起来Quanld可以提供更好的solution

我会用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

实际上,您的代码也可以工作(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

相关问题 更多 >

    热门问题