Python 使用panda datareader从谷歌金融下载股票数据的问题

Python 使用panda datareader从谷歌金融下载股票数据的问题,python,finance,google-finance,Python,Finance,Google Finance,直到几天前,一切都很顺利。现在,当我运行以下命令时: from pandas_datareader import data symbol = 'AMZN' data_source='google' start_date = '2010-01-01' end_date = '2016-01-01' df = data.DataReader(symbol, data_source, start_date, end_date) 我只得到如下所示的一年的最新数据,好像开始和结束数据似乎并不重要。将它

直到几天前,一切都很顺利。现在,当我运行以下命令时:

from pandas_datareader import data
symbol = 'AMZN'
data_source='google'
start_date = '2010-01-01'
end_date = '2016-01-01'

df = data.DataReader(symbol, data_source, start_date, end_date)
我只得到如下所示的一年的最新数据,好像开始和结束数据似乎并不重要。将它们更改为不同的日期会产生下面相同的结果。有人知道为什么吗

结果:

df.head()
              Open    High     Low   Close    Volume
Date                                                
2016-09-21  129.13  130.00  128.39  129.94  14068336
2016-09-22  130.50  130.73  129.56  130.08  15538307
2016-09-23  127.56  128.60  127.30  127.96  28326266
2016-09-26  127.37  128.16  126.80  127.31  15064940
2016-09-27  127.61  129.01  127.43  128.69  15637111

用雅虎取代谷歌。谷歌资源现在有问题


使用
fix yahoo finance
,然后使用
yahoo
而不是Google作为源代码。看起来谷歌最近锁定了很多数据

首先,您需要安装。只需使用
pip安装修复雅虎财经

然后使用
get\u data\u yahoo

from pandas_datareader import data
import fix_yahoo_finance as yf
yf.pdr_override() 

symbol = 'AMZN'
data_source='google'
start_date = '2010-01-01'
end_date = '2016-01-01'
df = data.get_data_yahoo(symbol, start_date, end_date)

df.head()
                 Open       High        Low      Close  Adj Close    Volume
Date                                                                       
2010-01-04  136.25000  136.61000  133.14000  133.89999  133.89999   7599900
2010-01-05  133.42999  135.48000  131.81000  134.69000  134.69000   8851900
2010-01-06  134.60001  134.73000  131.64999  132.25000  132.25000   7178800
2010-01-07  132.01000  132.32001  128.80000  130.00000  130.00000  11030200
2010-01-08  130.56000  133.67999  129.03000  133.52000  133.52000   9830500

雅虎截至2020年1月1日的工作时间:

import pandas_datareader.data as web
import datetime
start = datetime.datetime(2015, 1, 1)
end = datetime.datetime(2018, 2, 8)
df = web.DataReader('TSLA', 'yahoo', start, end)
print(df.head())

可能重复的感谢布拉德!按照你的方法,我能让它工作。唯一的变化是在将fix_yahoo_finance导入为yf后添加yf.pdr_override()。这现在给出:
ImmediatedPreactionError:yahoo Daily由于API中的大量中断而立即被弃用,而没有引入稳定的替换。欢迎请求重新启用这些数据连接器。看见https://github.com/pydata/pandas-datareader/issues
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2015, 1, 1)
end = datetime.datetime(2018, 2, 8)
df = web.DataReader('TSLA', 'yahoo', start, end)
print(df.head())