从整个指数(如DJIA)使用pandas web.DataRead获取数据

2024-06-01 06:42:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道如何得到个股。如何获取整个索引(如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)

Tags: 数据httpscomdatetimewwwgoogledtstart
1条回答
网友
1楼 · 发布于 2024-06-01 06:42:39

谷歌金融(Google Finance)和雅虎金融(Yahoo Finance)对指数符号的处理方式不同。谷歌将道琼斯指数标记为“.DJI”,而在雅虎则是“^DJI”。

出于某种原因,当我运行代码时,Pandas很难从雅虎找到道琼斯指数的数据,但它可以找到标准普尔指数和纳斯达克指数的数据。

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

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

如果你特别想要道琼斯指数,熊猫还允许你使用弗雷德数据,所以你可以选择走这条路线,虽然它不会包括所有的价格数据,只是收盘价。

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

另一种可能是使用Quandl。他们有大量的数据集(金融、经济、人口统计等)可能对市场分析有用。虽然它仍然只得到接近的价格,需要知道他们有时神秘的“代码”,这里是一个例子:

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

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

希望这有帮助。

相关问题 更多 >