1

由于 Python 的 pandas_datareader API 不再能够提取雅虎财经股票数据,我正在使用 quandl。这需要设置一个帐户并在命令终端中执行“pip install quandl”。如果我有一个不寻常的股票代码,比如 BRK.B,那么使用 pandas_datareader API 从 Google 提取股票数据就可以了。

 import pandas as pd
 import datetime
 from pandas_datareader import data, wb
 start = datetime.datetime(2016, 1, 1)
 end = datetime.datetime(2017, 1, 1)
 brk = data.DataReader("BRK.B", "google", start, end)["Close"]
 brk

但是,这不适用于 quandl,因为股票代码 BRK.B 在其中包含句号。

 import quandl
 brk = ["BRK.B"]
 for stk in brk:
     b = quandl.get("WIKI/{}".format(stk),
         authtoken = "Mixture of numbers, and lower/upper case letters",
         start, end)["Adj. Close"]

这会导致代码中断。但是,如果我将 ["BRK.B"] 换成任何正常的股票代码,比如 ["AAPL"],它就可以正常工作。但是,我想使用 quandl API 从标准普尔 500 指数中提取所有 505 只股票,因为某些股票代码有“。” 在他们中,它不会起作用。我试过format(stk.replace(".", "-"))了,但也没有用。

任何帮助将不胜感激。顺便说一句,对于那些不知道的人。您必须设置一个 quandl 帐户,然后从您的 quandl 帐户设置中获取您的 API 密钥代码,然后将其复制并粘贴为您的 authtoken。

4

1 回答 1

2

您是否尝试用下划线替换它?

"WIKI/{}".format(stk.replace(".", "_"))  # replacing . with _ instead of -

如果我没记错的话,点用于从数据中分割特定列。

于 2017-05-24T23:38:17.060 回答