Frequency einbauen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bebbi
User
Beiträge: 144
Registriert: Dienstag 21. April 2020, 19:21

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
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

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)
Bebbi
User
Beiträge: 144
Registriert: Dienstag 21. April 2020, 19:21

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.
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

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)
Bebbi
User
Beiträge: 144
Registriert: Dienstag 21. April 2020, 19:21

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....
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Wie kommst du denn darauf, dass DataReader das Argument kennen sollte?
Antworten