【问题标题】:How to grab stock data from Quandl with tickers that have a full stop? Python如何从 Quandl 获取带有句号的股票数据? Python
【发布时间】:2017-10-25 11:43:46
【问题描述】:

由于 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。

【问题讨论】:

    标签: python pandas quandl pandas-datareader


    【解决方案1】:

    您是否尝试将其替换为下划线?

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

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

    【讨论】:

    • 您好,勘误表,抱歉,不太清楚您在说什么。任何代码对我来说都会更容易阅读。自己尝试代码,只需确保您设置了 quandl 帐户,并且可以从您的 quandl 帐户设置中获取您的 authtoken。
    • @MichaelRSF 更新了我的答案。我没有 Quandl 帐户了,但我不久前曾短暂使用过它...
    • 非常感谢勘误表,我的错。我应该正确阅读你的信息。使用“yahoo”的 pandas_datareader 将是 stk.replace(".", "-")。我使用 quandl 是因为我需要调整后的收盘价,而带有“google”的 pandas_datareader 只给出收盘价,由于调整后的收盘价考虑了所有交易成本、股息等,因此不太准确。
    • @MichaelRSF 我不太明白用下划线替换是否有帮助? :) 我记得我必须做类似的事情,但不太记得到底是什么以及是否首先使用股票代码:/
    猜你喜欢
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2013-05-29
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多