如何使用 pandas-datareader 从 Yahoo 查找任何索引
How to lookup any index from Yahoo using pandas-datareader
我想查找任何在线索引,包括那些带有数字的索引。一个随机的例子是:
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".
如何使它适用于任何索引?
如果您查看您提供的 link,YSM6 是 ASX 的期货合约。具体来说是 M6 到期,意思是 2016-06。雅虎在他们的网站上不再有这份合同的数据——可能是因为它已经过期,也可能是因为它从来没有任何数据可用。另外,这个产品(3年期AU利率互换期货)好像已经被交易所下架了。
你的问题说你想要 "stock" 数据。这是带有数字符号的实际股票示例:
YSM6.AXlink表示没有该股票的数据。
如果您想获取多只股票,并专门获取调整后的收盘价,您可以使用此代码。它考虑了任何带有“-”或在 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
我想查找任何在线索引,包括那些带有数字的索引。一个随机的例子是:
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".
如何使它适用于任何索引?
如果您查看您提供的 link,YSM6 是 ASX 的期货合约。具体来说是 M6 到期,意思是 2016-06。雅虎在他们的网站上不再有这份合同的数据——可能是因为它已经过期,也可能是因为它从来没有任何数据可用。另外,这个产品(3年期AU利率互换期货)好像已经被交易所下架了。
你的问题说你想要 "stock" 数据。这是带有数字符号的实际股票示例:
YSM6.AXlink表示没有该股票的数据。 如果您想获取多只股票,并专门获取调整后的收盘价,您可以使用此代码。它考虑了任何带有“-”或在 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