首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从雅虎加载数据!熊猫融资

从雅虎加载数据!熊猫融资
EN

Stack Overflow用户
提问于 2014-05-13 21:49:50
回答 4查看 14.6K关注 0票数 7

我正在研究韦斯·麦金尼( Wes McKinney)的“数据分析Python”()一书,在第139页的相关性和协方差下,当我试图运行他的代码从Yahoo获得数据时,我遇到了一个错误!金融。

下面是我要做的事:

代码语言:javascript
复制
#CORRELATION AND COVARIANCE
import pandas.io.data as web

all_data = {}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']:
    all_data[ticker] = web.get_data_yahoo(ticker, '1/1/2003', '1/1/2013')

price = DataFrame({tic: data['Adj Close']
                   for tic, data in all_data.iteritems()})
volume = DataFrame({tic: data['Volume']
                    for tic, data in all_data.iteritems()})

下面是我遇到的错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "C:\Users\eMachine\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\pandas\io\data.py", line 390, in get_data_yahoo
    adjust_price, ret_index, chunksize, 'yahoo', name)
  File "C:\Users\eMachine\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\pandas\io\data.py", line 336, in _get_data_from
    hist_data = src_fn(symbols, start, end, retry_count, pause)
  File "C:\Users\eMachine\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\pandas\io\data.py", line 190, in _get_hist_yahoo
    return _retry_read_url(url, retry_count, pause, 'Yahoo!')
  File "C:\Users\eMachine\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\pandas\io\data.py", line 169, in _retry_read_url
    "return a 200 for url %r" % (retry_count, name, url))
IOError: after 3 tries, Yahoo! did not return a 200 for url 'http://ichart.yahoo.com/table.csv?s=GOOG&a=0&b=1&c=2000&d=0&e=1&f=2010&g=d&ignore=.csv'
>>> ... >>> >>> ... >>> 

知道问题出在哪里吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-13 23:41:06

正如卡尔指出的那样,代码已经改变,这意味着雅虎将返回一个“未找到的页面”。

当从web轮询数据时,最好尝试将调用包装为

代码语言:javascript
复制
all_data = {}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']:
    try:
        all_data[ticker] = web.get_data_yahoo(ticker, '1/1/2003', '1/1/2013')
        price = DataFrame({tic: data['Adj Close']
                    for tic, data in all_data.iteritems()})
        volume = DataFrame({tic: data['Volume']
                    for tic, data in all_data.iteritems()})
    except:
        print "Cant find ", ticker
票数 8
EN

Stack Overflow用户

发布于 2015-11-26 18:23:22

有同样的问题,把'GOOG‘改为'GOOGL’似乎是有效的,一旦您按照这些说明从pandas.io.data切换到pandas_datareader.data。

data.html#yahoo-finance

票数 1
EN

Stack Overflow用户

发布于 2017-06-02 02:38:25

截至17日6月1日,我从本页和其他几份文件中拼凑了以下内容:

代码语言:javascript
复制
from pandas_datareader import data as web
# import pandas.io.data as web
import fix_yahoo_finance
import datetime

start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2017, 6, 1)

all_data={}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOGL']:
    all_data[ticker] = web.get_data_yahoo(ticker, start, end)

price = DataFrame({tic: data['Adj Close'] 
                   for tic, data in all_data.iteritems()})
volume = DataFrame({tic: data['Volume']
                     for tic, data in all_data.iteritems()})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23642194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档