【问题标题】:Yahoo Finance API returning NAN for some tickersYahoo Finance API 为某些代码返回 NAN
【发布时间】:2020-08-03 02:25:12
【问题描述】:

我正在尝试使用 Yahoo Finance 进行一些非常简单的分析,以便习惯使用它。我试图从 yahoo Finance 导入数据,然后将其显示在图表上。在代码中,您可以看到我添加了一些代码来获取数据,但我似乎永远无法获取道琼斯、标准普尔 500 或纳斯达克等指数的数据。它继续为所有这些返回 NaN。

我的问题是,雅虎财经的 API 是否不包含该数据,还是我需要做其他事情来获取索引数据?

(我在寻找 ETF 数据时遇到同样的问题)

from pandas_datareader import data
import matplotlib.pyplot as plt
import pandas as pd

start_date = '2000-06-30'
end_date = '2020-06-30'

stocks = ['OMC','PUB','WPP','IXIC']

panel_data = data.DataReader(stocks,'yahoo',start_date,end_date)
panel_data = panel_data[['Adj Close']]
print(panel_data)
panel_data.plot(y = 'Adj Close')
plt.show()


Output:

Attributes  Adj Close                           
Symbols           OMC        PUB        WPP IXIC
Date                                            
2000-06-30  29.635815        NaN  39.444866  NaN
2000-07-03  30.093342        NaN  39.275150  NaN
2000-07-05  29.822983        NaN  39.512760  NaN
2000-07-06  29.407042        NaN  39.852219  NaN
2000-07-07  28.284004        NaN  39.241199  NaN
  • 注意:在上面的示例中,“PUB”列获取的数据不在我粘贴的行中,IXIC 是没有返回任何内容的列

【问题讨论】:

  • 很可能数据不可用。您能否确认这些股票在其他日子里的历史价格是可用的?
  • 雅虎是一个免费的数据源,你不能指望它的数据是彭博的质量,例如。尝试其他来源,例如 quandl

标签: python pandas yahoo-finance yahoo-api


【解决方案1】:

嗯。当我尝试时,这个效果很好。我所做的唯一更改是将您的股票代码从 IXIC 更新为 ^IXIC,这就是它在雅虎财经上的表现方式。 它适用于纳斯达克综合指数 (^IXIC)。我希望这就是你想要得到的那个。

from pandas_datareader import data
import matplotlib.pyplot as plt
import pandas as pd

start_date = '2000-06-30'
end_date = '2020-06-30'

stocks = ['OMC','PUB','WPP','^IXIC']

panel_data = data.DataReader(stocks,'yahoo',start_date,end_date)
panel_data = panel_data[['Adj Close']]
print(panel_data)
panel_data.plot(y = 'Adj Close')
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2020-03-12
    • 2011-01-17
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多