2017-04-03 2 views
0

Ich möchte Lookups für jeden Online-Index verwenden, einschließlich solcher mit Ziffern. Ein beliebiges Beispiel ist:So suchen Sie einen Index von Yahoo mit Pandas-Datenreader

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

Eine naive Methode ist Pandas-Datareader zu verwenden:

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

Dies ist jedoch nicht funktioniert. Ich denke, die Ziffern im Ticker werden nicht richtig behandelt. Dieser Befehl funktioniert z. "AAPL".

Wie bekomme ich das für jeden Index arbeiten?

Antwort

1

Der YSM6.AX Link zeigt, dass es keine Daten für diesen Bestand ist. Wenn Sie mehrere Aktien greifen möchten, und speziell den angepassten Abschluss erhalten, können Sie diesen Code verwenden. Es berücksichtigt alle lustigen Börsenticker, die entweder ein "-" oder im Fall von YSM6.AX ein "." im Ticker.

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 
+0

Danke Michael. – EB88

1

Wenn Sie sich den Link ansehen, den Sie angegeben haben, ist YSM6 ein Futures-Kontrakt auf ASX. Speziell ist es der M6-Ablauf, also 2016-06. Und Yahoo hat auf seiner Website keine Daten mehr für diesen Vertrag - vielleicht, weil es abgelaufen ist, oder vielleicht, weil dafür nie Daten zur Verfügung standen. Darüber hinaus scheint dieses Produkt (3-jährige AU-Zinsswap-Futures) von der Börse eingestellt worden zu sein.

Ihre Frage besagt, dass Sie "Lager" -Daten möchten. Hier ist ein Beispiel eines tatsächlichen Bestandes mit einem numerischen Symbol:

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

+0

Dank John, sehr schnelle und hilfreiche Antwort. Sie haben meine Frage richtig beantwortet, aber ich habe sie geändert, während Sie geantwortet haben. Ich entschuldige mich, ich bin noch ziemlich neu dazu. – EB88

+0

Ich rollte auf die ursprüngliche Frage zurück und akzeptierte Ihre Antwort. Vielen Dank. – EB88