【问题标题】:"get_data_yahoo" from "pandas_datareader" returns empty DataFrame“pandas_datareader”中的“get_data_yahoo”返回空 DataFrame
【发布时间】:2018-01-24 00:49:36
【问题描述】:

我试图使用“pandas_datareader”中的“get_data_yahoo”方法获取股票数据,因此我编写了以下代码进行测试。我了解到 Yahoo API 存在问题,所以我按照指令here 添加“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 中的一两个(或全部三个)为空,如下所示。 在第一张图片中仅获取第一张,而在第二张图片中仅获取第二张。
我尝试了不同的代码并运行了很多次,这似乎是一种随机模式。有谁知道发生了什么?是模块再次损坏还是我可以修复的东西?提前致谢。

【问题讨论】:

    标签: python pandas yahoo-finance pandas-datareader


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      尝试添加

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

      打电话之前

      pdr.get_data_yahoo(**stocks**, start="2017-08-13",end="2017-08-14")
      

      【讨论】:

        猜你喜欢
        • 2023-03-12
        • 2017-10-16
        • 2020-01-07
        • 2016-08-04
        • 2020-03-16
        • 1970-01-01
        • 2020-06-04
        • 2017-12-09
        • 2017-08-08
        相关资源
        最近更新 更多