Herunterladen von mehreren Aktien auf einmal von yahoo finance python
Ich habe eine Frage über die Funktion von yahoo finance mit dem Pandabären data reader. Ich benutze nun seit Monaten eine Liste mit Aktien-Ticker und führen Sie es in den folgenden Zeilen:
import pandas_datareader as pdr
import datetime
stocks = ["stock1","stock2",....]
start = datetime.datetime(2012,5,31)
end = datetime.datetime(2018,3,1)
f = pdr.DataReader(stocks, 'yahoo',start,end)
Seit gestern bekomme ich die Fehlermeldung "IndexError: list index out of range", die erscheint nur wenn ich versuche mehrere Aktien.
Sich da was geändert hat in den letzten Tagen, die ich beachten sollte oder habt Ihr eine bessere Lösung für mein problem?
InformationsquelleAutor ScharcoMolten | 2018-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Lesen, durch Pandas DataReader ist Dokumentation, erteilt Sie eine sofortige Abschreibung auf mehrere data-source-API, von denen Yahoo! Finanzen.
Könnte dies die Ursache sein, warum Sie immer
IndexError
's (oder einer anderen Regel keine vorhandenen Fehler).Allerdings gibt es ein weiteres Python-Paket, dessen Ziel es ist, zu beheben, der support für Yahoo! Finanzen für Pandas DataReader, finden Sie, dass dieses Paket hier:
https://pypi.python.org/pypi/fix-yahoo-finance
Entsprechend Ihrer Dokumentation:
Alles, was Sie hinzufügen müssen, ist dies:
Oder sogar ohne die Notwendigkeit der Pandas DataReader:
Die ersten von Ihnen falsch geschrieben, es ist
pdr_override
nichtpd_override
. Und für den zweiten Teil, sollte es keine Fehler mit den aktuellen codes, welche anderen codes wurden Sie ausgeführt?Du hast Recht, es hat aber nichts ändern, obwohl mein editor schlägt pdr_override() , aber trotzdem klappt es dann endlich mit der zweiten option, ich brauchte es nur zum konvertieren meiner Serien-Liste, meine bad. Vielen Dank für Ihre Unterstützung!
InformationsquelleAutor abccd
Können Sie mit der neuen Python-YahooFinancials Modul mit pandas zu tun. YahooFinancials ist gut gebaut und erhält seine Daten durch hashing aus dem datastore-Objekt in jedem Yahoo Finance Web-Seite, so es ist schnell und verlässt sich nicht auf die alten eingestellt-api noch eine web-driver wie ein Spachtel tut. Daten als JSON zurückgegeben, und Sie können Sie ziehen, so viele Aktien wie Sie wollen auf einmal durch übergeben einer Liste von Aktien - /index-Ticker zum initialisieren der YahooFinancials Klasse mit.
$ pip install yahoofinancials
Beispiel:
Mehrere Aktien Daten auf einmal Beispiel (gibt Liste von JSON-Objekten für jeden ticker):
JSON-Ausgabe Beispiel:
Code:
JSON Zurück:
Man sollte auch hinzufügen, dass wenn Sie dieses Modul verwenden, können Sie entweder hoffen, dass es beibehalten werden, oder sind bereit, es zu halten, wenn es sein muss. In der Tat Yahoo Financial könnte sich ändern, die Struktur Ihrer web-Seiten jeden Tag, das könnte eine änderung der Modul-Schaben-code.
Vereinbart. Tbh bin ich bereit, den code zu pflegen atleast für meinen persönlichen Gebrauch, wenn es sein muss. Es ist wirklich gut zusammengestellt. Betreuer behandelt hat ein paar Probleme und diese geschlossen, so dass er nicht angezeigt wird fehlt. Yahoo Finance scheint gehabt zu haben eine massive neue web app-Bereitstellung, wenn Sie das Herunterfahren Ihres API. Auf top von, dass die Felder angezeigt werden, die direkt aus der Datenbank. Ich glaube nicht, scheinen Sie ändern der Feldnamen jederzeit schnell und frontend-änderung wird keinen Einfluss auf das Modul, es sei denn, Sie ändern Sie die web-app-framework, die Sie verwenden. DBs sind in der Regel nur geändert in major-releases.
Auch web-Treiber sind nett, versteh mich nicht falsch. Ich Liebe Selen + phantom. Aber die gerenderten GUI-Komponenten Sie Schrott sind eher ändern als die Daten speichern Variablen in der Regel auf einen Namen und ändern die Lösung für eine umbenannte Datenbank-Feld (sehr selten) ist in der Regel einfacher zu implementieren, dann neuen code schreiben zu interagieren und Schrott einen neuen Teil der app. Auch diese Lösung ist schneller als das abrufen von Daten aus einer web-scraper von meiner Erfahrung. Vor allem, wenn es die Daten können Sie nur Schrott durch die Paginierung Tasten über den web-Treiber. Ich vermute, dass dieses Modul wird in Ordnung sein mit nur geringfügigen Korrekturen für ~3 Jahre
InformationsquelleAutor alt777