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

Posted

技术标签:

【中文标题】如何使用 pandas-datareader 从 Yahoo 查找任何索引【英文标题】:How to lookup any index from Yahoo using pandas-datareader 【发布时间】:2017-04-03 15:05:58 【问题描述】:

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

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)

但是,这不起作用。我认为股票代码中的数字处理不当。此命令适用于例如“苹果”。

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

【问题讨论】:

【参考方案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

【讨论】:

谢谢迈克尔。【参考方案2】:

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

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

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

【讨论】:

谢谢约翰,非常及时和乐于助人的回复。您正确回答了我的问题,但在您回答时我正在修改。抱歉,我对此还是很陌生。 我回滚到原来的问题并接受了你的回答。谢谢。

以上是关于如何使用 pandas-datareader 从 Yahoo 查找任何索引的主要内容,如果未能解决你的问题,请参考以下文章

Zipline:使用 pandas-datareader 为非美国金融市场提供 Google Finance 数据框

如何使用 Python 下载股票价格数据?

模块'pandas_datareader'没有属性'get_data_yahoo'

Pandas 处理时间序列数据

如何使用 graphql 从 Firebase 使用 Flutter 从 Cloud Firestore 获取数据?

如何使用颤振提供程序从 Firestore 获取数据?