0

我试图使用“pandas_datareader”中的“get_data_yahoo”方法获取股票数据,所以我编写了以下内容进行测试。我了解到 Yahoo API 存在问题,所以我按照此处的说明添加“fix_yahoo_finance”模块和yf.pdr_override().

from pandas_datareader import data as pdr
import fix_yahoo_finance as yf
from datetime import datetime

yf.pdr_override()
a = pdr.get_data_yahoo('AAPL', start=datetime(2017, 8, 13), end=datetime(2017, 8, 14))
b = pdr.get_data_yahoo('AMZN', start=datetime(2017, 8, 13), end=datetime(2017, 8, 14))
c = pdr.get_data_yahoo('MSFT', start=datetime(2017, 8, 13), end=datetime(2017, 8, 14))
print(a)
print(b)
print(c)

但是,当我运行上述代码时,有时无法获取股票,这导致 DataFrame 中的一两个(或全部三个)为空,如下所示。 在第一张图片中仅获取第一张,而在第二张图片中仅获取第二张。 我尝试了不同的代码并运行了很多次,这似乎是一种随机模式。有谁知道发生了什么?是模块再次损坏还是我可以修复的东西?提前致谢。在此处输入图像描述 在此处输入图像描述

4

2 回答 2

1

我现在无法诊断这里发生的确切问题,但这里有一个解决方法:

stock_list = ['AMZN', 'MSFT', 'AAPL']
stock_dict = {}
for stock in stock_list:
    dim = (0,0)
    while dim != (1,6):
       s = pdr.get_data_yahoo(stock, start="2017-08-13",end="2017-08-14")
       dim = s.shape
    stock_dict[stock] = s
于 2017-08-16T02:49:46.330 回答
0

尝试添加

stocks = [stock + '.AX' for stock in stockList]*

打电话之前

pdr.get_data_yahoo(**stocks**, start="2017-08-13",end="2017-08-14")
于 2021-12-14T08:39:56.763 回答