【问题标题】:Pandas DataReader Fails To Obtain Data for Mutual Funds and Indexes from GooglePandas DataReader 无法从 Google 获取共同基金和指数的数据
【发布时间】:2016-01-01 09:45:17
【问题描述】:

我试图从谷歌获取某些其他地方没有的财务指标的财务数据。数据提取失败,让我想知道是否无法使用 Pandas DataReader 提取某些类别的谷歌财务数据。我用谷歌搜索了这个问题,找不到任何关于这个问题的讨论。从谷歌金融获取数据有限制吗?

这就是问题所在。当我尝试使用 Pandas 的 DataReader 从 Google Finance 获取数据时收到以下错误:

OSError:3 次尝试后,Google 没有为 url 'http://www.google.com/finance/historical?enddate=Dec+25%2C+2015&q=VFINX&startdate=Jun+02%2C+2003&output=csv' 返回 200

导致错误消息的 Pandas 声明是:

data.DataReader("VFINX", 'google', start=datetime.datetime(2003, 6, 2), end=datetime.date.today())

我导入了以下库:

from pandas_datareader import data, wb

import datetime

当我尝试获取共同基金(例如 VFINX(Vanguard S&P 500)或指数(例如 DWCPF(道琼斯完成指数))的数据时,也会出现此错误。共同基金的明显解决方法是使用雅虎。但是,当我获取股票的数据时,上述语句可以正常工作,例如 C(花旗银行)。这让我相信,无法通过 pandas 数据阅读器获得共同基金和指数的 Google 财务数据。

很遗憾,雅虎没有提供索引 DWCPF 的历史数据。为了从谷歌获取数据,我通过修改 url 抓取了谷歌, https://www.google.com/finance/historical?cid=12645460&startdate=Dec+26%2C+2014&enddate=Dec+25%2C+2015&num=200&ei=TVV9VoHSOMWSmAGAx7ewCg 显然,网络抓取比简单地使用数据阅读器需要更多的工作。

我正在使用 python 3.4(和 3.5 在另一台计算机上),pandas 版本 0.17.1,最近升级到 Pandas DataReader。

【问题讨论】:

  • Google 财经似乎不支持共同基金的 csv 输出。所以这个网址有效:google.com/finance/historical?&q=VFINX 但添加 &output=csv 与任何 &startdate 或 &enddate 不
  • 这可能是因为共同基金和指数没有交易价格(它们分别有 NAV 和水平),Google 可能无权提供下载。不过只是猜测。

标签: python pandas pandas-datareader


【解决方案1】:

Google 列出了各种证券和交易所的 data providers,而 so 列出了 Yahoo。虽然股票数据来自交易所延迟,但共同基金数据分别来自MorningStarvickers-stock.com

后者是商业数据提供者(道琼斯也是如此)而不是证券交易所,它们可能会对数据使用限制更多,而不是在 google/yahoo 网站上显示,并且可能会在合同中规定防止大型- 通过 API 扩展下载。

因此,从本质上讲,您最有可能遇到的是 google 金融 api 的商业限制,而不是 pandas DataReader 的技术限制。

【讨论】:

  • 感谢您的回复。我怀疑这不是 pandas DataReader 的问题。
  • 乐于助人。这回答了你的问题吗?
  • 是的,你确实回答了我的问题。感谢您花时间做出回应。
猜你喜欢
  • 2018-09-14
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 2020-02-27
相关资源
最近更新 更多