我有一个关于雅虎财务使用熊猫数据阅读器的功能的问题。几个月来,我一直在使用一个股票行情表,并按以下行执行:
import pandas_datareader as pdr
import datetime
stocks = ["stock1","stock2",....]
start = datetime.datetime(2012,5,31)
end = datetime.datetime(2018,3,1)
f = pdr.DataReader(stocks, 'yahoo',start,end)
从昨天开始,我得到了一个错误“index error:list index out of range”(索引器错误:列表索引超出范围),只有当我尝试获取多个股票时才会出现这个错误。
最近几天我有什么需要考虑的变化吗?或者你有更好的办法解决我的问题吗?
您可以将新的Python YahooFinancials模块与pandas一起使用。YahooFinancials构建得很好,通过散列每个Yahoo Financial网页中的数据存储对象来获取数据,因此它速度很快,既不依赖于旧的中断api,也不像scraper那样依赖于Web驱动程序。数据以JSON格式返回,您可以通过传入股票/指数股票的列表来初始化YahooFinancials类,一次拉取任意数量的股票。
$pip安装yahoofinancials
用法示例:
一次多个股票数据示例(返回每个股票代码的JSON对象列表):
JSON输出示例:
代码:
JSON返回:
雅虎财经已经无法使用,因为雅虎已经改变了格式,修复雅虎财经已经足够好,可以下载数据。不过,要进行解析,您需要其他库,下面是一个简单的工作示例:
有关代码的说明,请访问https://medium.com/@gerrysabar/charting-stocks-price-from-yahoo-finance-using-fix-yahoo-finance-library-6b690cac5447
如果您阅读了Pandas数据阅读器的documentation,它们会立即对多个数据源API(其中之一是Yahoo!)!金融。
这可能是导致您获得
IndexError
错误(或任何其他通常不存在的错误)的罪魁祸首。然而,还有一个Python包的目标是修复对Yahoo!的支持!Finance for Pandas数据读取器,您可以在此处找到该包:
https://pypi.python.org/pypi/fix-yahoo-finance
根据他们的文件:
您只需添加以下内容:
甚至不需要Pandas数据读取器:
相关问题 更多 >
编程相关推荐