一些 ETF 代码在 Yahoo Finance DataReader 中不起作用
Some ETF Tickers Not Working in Yahoo Finance DataReader
我正在使用 Pandas-Datareader 通过 Yahoo Finance 从一堆 ETF 中收集数据,尽管数据似乎可用,但我在一些代码中遇到了奇怪的错误。代码很简单:
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2017,1,1)
for ticker in TICKERS:
f = dr.DataReader(ticker, 'yahoo', start, end)
并且适用于我的大部分代码,但不是全部:
EMLP GDVD (Failed to get data for GDVD) AMZA RFDI ARKK ARKW SECT (Failed to get data for SECT)
EMLP 工作正常。 Datareader 生成 urls 就像这样 url for GDVD even though the historical data for GDVD 在网站上可用。我在 Chrome 使用 GDVD url 时看到以下错误:
{"finance": {"error": {"code": "Unauthorized","description": "Invalid cookie"}}}
有没有办法获得这些代码的历史价格?失败代码的完整列表以防任何人看到模式:
['GDVD', 'SECT', 'DWLD', 'CCOR', 'DFNL', 'DUSA', 'AIEQ', 'CACG', 'QSY', 'ACT', 'TAXR', 'TTAI', 'FLIO', 'FMDG', 'VGFO', 'FFSG', 'LRGE', 'YLDE', 'VESH', 'DEMS', 'SQZZ']
使用 yahoo_fin 包,我能够获取您列出的代码的数据。看看这个 link:http://theautomatic.net/yahoo_fin-documentation/.
我的代码如下所示:
from yahoo_fin.stock_info import get_data
tickers = ['GDVD', 'SECT', 'DWLD', 'CCOR', 'DFNL', 'DUSA', 'AIEQ', 'CACG',
'QSY', 'ACT', 'TAXR', 'TTAI', 'FLIO', 'FMDG', 'VGFO', 'FFSG',
'LRGE', 'YLDE', 'VESH', 'DEMS', 'SQZZ']
stocks = {}
for ticker in tickers:
stocks[ticker] = get_data(ticker)
所以数据被存储到字典中,其中键是代码,值是包含每只股票数据的数据框。
或者,您可以使用字典理解,如下所示:
stocks = {ticker : get_data(ticker) for ticker in tickers}
如果您想将所有数据集折叠成一个数据框,您可以像这样使用 functools 包:
from functools import reduce
combined = reduce(lambda x,y: x.append(y), stocks.values())
我正在使用 Pandas-Datareader 通过 Yahoo Finance 从一堆 ETF 中收集数据,尽管数据似乎可用,但我在一些代码中遇到了奇怪的错误。代码很简单:
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2017,1,1)
for ticker in TICKERS:
f = dr.DataReader(ticker, 'yahoo', start, end)
并且适用于我的大部分代码,但不是全部:
EMLP GDVD (Failed to get data for GDVD) AMZA RFDI ARKK ARKW SECT (Failed to get data for SECT)
EMLP 工作正常。 Datareader 生成 urls 就像这样 url for GDVD even though the historical data for GDVD 在网站上可用。我在 Chrome 使用 GDVD url 时看到以下错误:
{"finance": {"error": {"code": "Unauthorized","description": "Invalid cookie"}}}
有没有办法获得这些代码的历史价格?失败代码的完整列表以防任何人看到模式:
['GDVD', 'SECT', 'DWLD', 'CCOR', 'DFNL', 'DUSA', 'AIEQ', 'CACG', 'QSY', 'ACT', 'TAXR', 'TTAI', 'FLIO', 'FMDG', 'VGFO', 'FFSG', 'LRGE', 'YLDE', 'VESH', 'DEMS', 'SQZZ']
使用 yahoo_fin 包,我能够获取您列出的代码的数据。看看这个 link:http://theautomatic.net/yahoo_fin-documentation/.
我的代码如下所示:
from yahoo_fin.stock_info import get_data
tickers = ['GDVD', 'SECT', 'DWLD', 'CCOR', 'DFNL', 'DUSA', 'AIEQ', 'CACG',
'QSY', 'ACT', 'TAXR', 'TTAI', 'FLIO', 'FMDG', 'VGFO', 'FFSG',
'LRGE', 'YLDE', 'VESH', 'DEMS', 'SQZZ']
stocks = {}
for ticker in tickers:
stocks[ticker] = get_data(ticker)
所以数据被存储到字典中,其中键是代码,值是包含每只股票数据的数据框。
或者,您可以使用字典理解,如下所示:
stocks = {ticker : get_data(ticker) for ticker in tickers}
如果您想将所有数据集折叠成一个数据框,您可以像这样使用 functools 包:
from functools import reduce
combined = reduce(lambda x,y: x.append(y), stocks.values())