Seite 1 von 1
Frequency einbauen
Verfasst: Montag 31. August 2020, 20:07
von Bebbi
Hallo zusammen
Ich habe ein Problem, welches für Euch wohl eher lächerlich ist.
Ich muss für eine Arbeit Daten von Yahoo finance herunterladen. Das funktioniert mit folgendem Befehl sehr gut:
stock_data_ibm = dr.data.DataReader('ibm', data_source='yahoo', start=start_date, end=end_date)
das Problem ist nur, dass ich lediglich die monatlichen Werte und nicht die täglichen Werte benötige. Ich dachte ich kann den Befehl wie folgt ergänzen:
stock_data_ems = dr.data.DataReader('EMSN.SW', data_source='yahoo', start=start_date, end=end_date, interval='m')
In diesem Fall erhalte ich jeweils eine Fehlermeldung. Das gleiche wenn ich anstell von "interval", "frequency" benutze. Dies sind allerdings die beiden Befehle welche ich bei der Websuche finde. Was läuft falsch?
Danke
Re: Frequency einbauen
Verfasst: Dienstag 1. September 2020, 06:20
von Jankie
Poste bei mal bitte deinen Code und den gesamten Traceback.
Folgendes funktioniert bei mir: (ist aber nur täglich) Aber auch wenn ich das Startdatum auf den 01.08 setze funktioniert es.
Code: Alles auswählen
import pandas_datareader.data as dr
from datetime import datetime
start_date = datetime(2020, 8, 31)
end_date = datetime(2020, 8, 31)
stock_data_ems = dr.DataReader('EMSN.SW', data_source='yahoo', start=start_date, end=end_date)
print(stock_data_ems)
oder du machst es folgerndermaßen:
Code: Alles auswählen
stock_data_ems = dr.get_data_yahoo('EMSN.SW', start='2020-01-01', interval='m')
print(stock_data_ems)
Re: Frequency einbauen
Verfasst: Mittwoch 2. September 2020, 16:23
von Bebbi
Sorry für die späte Rückmeldung:
Ich habe es folgendermassen versucht:
Code: Alles auswählen
start_date = dt.datetime(2010, 6, 30)
end_date = dt.datetime(2020, 6, 30)
frequency = interval='m'
und
Code: Alles auswählen
stock_data_ems = dr.data.DataReader('EMSN.SW', data_source='yahoo', start=start_date, end=end_date)
Das klappt aber leider nicht.
Re: Frequency einbauen
Verfasst: Donnerstag 3. September 2020, 06:16
von Jankie
Zeig mal deinen kompletten Code (inkl. imports) und zeigt den exakten Traceback. Klappt nicht ist nicht sehr aussagekräftig.
Bei mir klappt es so, wahrscheinlich machst du irgendwas falsch. Nur um zu wissen was du falsch machst wäre der ganze Code und Traceback sinnvoll.
So bekomme ich für jeden Tag die Werte:
Code: Alles auswählen
import pandas_datareader.data as dr
from datetime import datetime
start_date = datetime(2010, 6, 30)
end_date = datetime(2020, 6, 30)
stock_data_ems = dr.DataReader('EMSN.SW', data_source='yahoo', start=start_date, end=end_date)
print(stock_data_ems)
und so für jeden Monat:
Code: Alles auswählen
import pandas_datareader.data as dr
from datetime import datetime
start_date = datetime(2010, 6, 30)
stock_data_ems = dr.get_data_yahoo('EMSN.SW', start=start_date, interval='m')
print(stock_data_ems)
Re: Frequency einbauen
Verfasst: Donnerstag 3. September 2020, 19:40
von Bebbi
Hier die Imports
Code: Alles auswählen
# import python data science and utility libraries
import os, io, urllib, itertools
import datetime as dt
import pandas as pd
import pandas_datareader as dr
import numpy as np
Ich habe datetime importiert und ich habe auch den pandas_datareader importiert. Trotzdem kommt bei folgendem Code die untenstehende Meldung:
Code: Alles auswählen
start_date = dt.datetime(2010, 6, 30)
end_date = dt.datetime(2020, 6, 30)
Code: Alles auswählen
stock_data_ems = dr.data.DataReader('EMSN.SW', data_source='yahoo', start=start_date, end=end_date, interval='m')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-26-b049fb8fd785> in <module>()
----> 1 stock_data_ems = dr.data.DataReader('EMSN.SW', data_source='yahoo', start=start_date, end=end_date, interval='m')
/usr/local/lib/python3.6/dist-packages/pandas/util/_decorators.py in wrapper(*args, **kwargs)
212 else:
213 kwargs[new_arg_name] = new_arg_value
--> 214 return func(*args, **kwargs)
215
216 return cast(F, wrapper)
TypeError: DataReader() got an unexpected keyword argument 'interval'
Irgendwie erkennt der DataReader das Argument 'interval' nicht....
Re: Frequency einbauen
Verfasst: Dienstag 8. September 2020, 06:16
von Jankie
Wie kommst du denn darauf, dass DataReader das Argument kennen sollte?