如何使用pandas-datareader从Yahoo查找任何索引

时间:2017-04-03 15:05:59

标签: python pandas yahoo datareader ticker

我想对任何在线索引使用查找,包括带数字的索引。一个随机的例子是:

https://uk.finance.yahoo.com/quote/YSM6.AX/futures?p=YSM6.AX

一种天真的方法是使用pandas-datareader:

from pandas_datareader import data as datareader
online_data = datareader.DataReader('YSM6.AX', 'yahoo', start, end)

然而,这不起作用。我认为自动收报机中的数字处理不当。这个命令适用于例如“AAPL”。

如何让它适用于任何索引?

2 个答案:

答案 0 :(得分:1)

如果查看您提供的链接,YSM6是ASX的期货合约。具体来说,它是M6到期,意味着2016-06。雅虎在他们的网站上已经没有关于此合同的数据了 - 可能是因为它已经过期,或者可能是因为从来没有任何可用的数据。此外,该产品(3年期非盟利率互换期货)似乎已被交易所终止。

您的问题是您想要“库存”数据。以下是带有数字符号的实际库存示例:

https://uk.finance.yahoo.com/quote/7203.KL/?p=7203.KL

答案 1 :(得分:1)

YSM6.AX链接显示此股票没有数据。 如果您想获取多个股票,并获得专门调整后的收盘价,您可以使用此代码。它考虑了任何具有“ - ”的有趣股票代码,或者在YSM6.AX的情况下,“。”。在自动收报机内。

    import pandas as pd
    import datetime
    from pandas_datareader import data, wb
    tickers = ["BRK.B", "AAPL", "MSFT", "YHOO", "JPM"]
    series_list = []

    start = datetime.datetime(2012, 4, 5)
    end = datetime.datetime(2017, 3, 28)
    for security in tickers:
        s = data.DataReader(security.replace(".","-"),"yahoo",start, end )["Adj Close"]

        s.name = security
        series_list.append(s)

    df = pd.concat(series_list, axis=1)

    stocks= pd.DataFrame(df)
    stocks