使用pandas web.DataReader从整个索引(例如,DJIA)中抓取数据

时间:2014-04-25 02:18:34

标签: python pandas finance quandl

我知道如何获得个股。我如何获得整个索引的数据,比如DJI? https://www.google.com/finance?q=INDEXDJX%3A.DJI&ei=zsVZU4iADYKI6AGoXA

我想尽可能远远地分析整个股市

start, end = dt.datetime(1950, 1, 1), dt.datetime(2013, 12, 31)

data = web.DataReader('.DJI', 'yahoo', start, end)

1 个答案:

答案 0 :(得分:6)

Google财经和雅虎财经以不同方式处理指数的符号。谷歌将道指称为“.DJI”,而在雅虎,它将是“^ DJI”。

由于某种原因,当我运行代码时,Pandas无法从雅虎找到道琼斯指数的数据,但它可以为S& P和纳斯达克找到它。

# this works
web.DataReader('^GSPC','yahoo')  # S&P 500
web.DataReader('^IXIC','yahoo')  # NASDAQ

# this doesn't
web.DataReader('^DJI','yahoo')   # Dow

如果您特别想要陶氏数据,Pandas还允许您使用FRED数据,因此您可以选择采取该路线,但不包括所有价格数据,只包括收盘价。

web.DataReader('DJIA','fred')

另一种可能性是使用Quandl。他们拥有大量可能对市场分析有用的数据集(财务,经济,人口统计等)。虽然它仍然只能得到接近的价格,并且需要知道它们有时含糊不清的“代码”,但这里有一个样本:

import Quandl
dow_code = 'BCB/UDJIAD1'
Quandl.get(dow_code)

您可能需要创建一个Quandl帐户(它是免费的)来获取允许外部挖掘到其数据库的授权令牌,但这是另一种可能的解决方法:)

希望这有帮助。