3

我只是使用 pandas datareader 来获取过去两周左右的股票数据,它工作正常。从昨天开始突然之间提供的日期不再有效。它只是给了我过去一年的数据,我无法更改日期。曾经与注释掉的那个一起工作,但现在不是。我什至将其更改为使用 datetime 对象,但仍然无法正常工作。任何想法?我更新了 pandas 和 pandas_datareader 仍然没有运气。用了另一台电脑还是不行。他们最近是否更改了 API?

from pandas_datareader import data
import datetime

#start = '2010-01-01'
#end = '2017-7-31'
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2017,7, 31)
f = data.DataReader('AAPL', 'google', start, end)
print(f.head())

输出:

              Open    High     Low   Close    Volume
Date                                                
2016-09-19  115.19  116.18  113.25  113.58  47023046
2016-09-20  113.05  114.12  112.51  113.57  34514269
2016-09-21  113.85  113.99  112.44  113.55  36003185
2016-09-22  114.35  114.94  114.00  114.62  31073984
2016-09-23  114.42  114.79  111.55  112.71  52481151
4

3 回答 3

5

Google 已将 Google 财经 URL 更改为 Finance.google.com/finance/historical 而不是 www.google.com/finance/historical,后者用作 pandas_datareader 中的 URL。

服务器从旧 URL 获取数据并重定向到新 URL 时返回 HTTP 302。但是,在 HTTP 重定向期间缺少参数 startdate/enddate。

url在源代码中设置: https ://github.com/pydata/pandas-datareader/blob/master/pandas_datareader/google/daily.py

也许您可以修改 URL 并使用您自己的 pandas_datareader 版本。

于 2017-09-22T03:12:31.263 回答
1

网址现已更新,因此升级 datareader 将解决问题:

sudo pip install pandas_datareader --upgrade

于 2017-10-24T16:37:36.160 回答
0

根据数据阅读器文档,Yahoo!、Google Options、Google Quotes 和 EDGAR 已被立即弃用,因为它们的 API 发生了很大变化并且没有稳定的替代品。改用“iex”

import pandas_datareader.data as web
import datetime as dt    

start = dt.datetime(2018,1,1)
end = dt.datetime(2019,1,1)

aapl = web.DataReader('AAPL', 'iex', start, end)

aapl.shape
(251, 5)

aapl.head()

    open    high    low close   volume
date                    
2018-01-02  167.6431    169.7514    166.7564    169.7120    25555934
2018-01-03  169.9780    171.9682    169.4165    169.6825    29517899
2018-01-04  169.9879    170.9041    169.5347    170.4707    22434597
2018-01-05  170.8746    172.7760    170.4904    172.4115    23660018
2018-01-08  171.7711    173.0125    171.3573    171.7711    20567766
于 2019-01-08T20:26:50.000 回答