我在Snow Leopard中使用Python 2.7.3,目前(2013年4月2日)最新版本的pandas 0.10.1
我正在尝试使用pandas Yahoo finance API来获取股票价值(查询中的日期在这里并不重要)。
这有效:
import pandas.io.data as web
GOOG = web.get_data_yahoo('GOOG', '8/19/2004')
不:
import pandas.io.data as web
DJI = web.get_data_yahoo('^DJI', '8/19/2004')
^似乎是问题所在。雅虎财务用%5E或@%5E取代^。我试过直接替换这些没有成功。我也从2个月前发现了this commit,这似乎在第232行解决了这个问题。我看了一下我自己的pandas / io / data.py并且它不太相同而且没有提到这个是问题。
是否有使用API的简单解决方案?
我想我可以自己使用Beautiful Soup或其他东西并将结果塞进DataFrame
但我更喜欢找到一种方法来使用API,因为它保持干净并且工作已经完成。
答案 0 :(得分:0)
我认为问题是缺少数据来源。例如,GOOG的来源是http://ichart.yahoo.com/table.csv?s=GOOG,似乎没问题。此外,一些带有“^”的符号也可以使用,例如,http://ichart.yahoo.com/table.csv?s=%5ETWII也可以。但是,http://ichart.yahoo.com/table.csv?s=%5EDJI不起作用。请注意,“^”将编码为%5e
而且,链接被破坏了什么?你可以找到一些答案here