尝试使用pandas加载库存数据,但不能正常工作

时间:2017-04-10 14:46:55

标签: python csv pandas

import pandas as pd
#from pandas_datareader import data, wb
import pandas.io.data as web 
import datetime

start = datetime.datetime(2014,6,2)
end = datetime.datetime(2014,9,25)

google = web.DataReader("GOOG", "yahoo", start, end)
tesla = web.DataReader("TSLA", "yahoo", start, end)
apple = web.DataReader("AAPL", "yahoo", start, end)

这个简单的代码就是我想要运行的所有内容,而且我已经能够在3天前运行它,但在过去的2天里它拒绝运行。

问题:当我将日期设置为start =(2014,6,2)end =(2014,8,7)时,代码将完全正常运行。但是,当我将结束日期更改为(2014,9,15)时,我将收到以下错误:

经过3次尝试,雅虎!没有为网址“http://ichart.finance.yahoo.com/table.csv?s=GOOG&a=5&b=2&c=2014&d=8&e=25&f=2014&g=d&ignore=.csv”返回200

我使用Anaconda(jupyter笔记本)运行所有这些,所以我只能假设pandas包是最新的,并且没有发生任何变化。

我还尝试用更新pandas_datareader更改pandas.io.data的过时导入,但jupyter笔记本(使用python 3)无法识别模块是否存在

任何有关为何发生这种情况的帮助都是非常感谢的!

3 个答案:

答案 0 :(得分:1)

为我工作。但是,我使用pandas_datareader而不是pandas.io.data,因为模块已移动到那里。我在熊猫0.19.2

在更改end后,它继续工作。

这是我做的(在IPython中):

import pandas as pd
import pandas_datareader.data as web
from datetime import datetime

start = datetime(2014, 6, 2)
end = datetime(2014, 9, 5)
google = web.DataReader('GOOG', 'yahoo', start, end)
tesla = web.DataReader('TSLA', 'yahoo', start, end)
apple = web.DataReader('AAPL', 'yahoo', start, end)

答案 1 :(得分:0)

Yahoo has switched off the API。您可以切换到Google API以获得类似的服务,例如example link

或者如果使用pandas:

df = web.DataReader("AAPL", "google", start, end)

答案 2 :(得分:-1)

我可以从使用Matlab和Excel的其他网站看到http:// ichart ...对某些人来说不能正常工作。尝试使用https:// ichart ......这似乎对我有用。使用http:// download.finance.yahoo.com获取今天的数据似乎仍然可行,但它有点间歇性。 4/18/2017