@Sirius3
Danke für dein Feedback! Das mit den Bezeichnungen macht Sinn und den Fehler hätte ich natürlich auch mitliefern können. Ich habe den code dementsprechend angepasst.
Code: Alles auswählen
import pandas as pd
import numpy as np
from datetime import datetime
from forex_python.converter import get_rate
from forex_python.converter import CurrencyRates
currencyrates = CurrencyRates()
alledaten = df['Date'].tolist() #um eine Liste zu bekommen #was meinst du zu "alledaten"? Ist das eine praktikable Bezeichnung?
#alledaten ist eine Liste mit string Objekten. Die kann man mit folgendem loop in eine datetime.dateime Liste konvertieren:
alledaten_in_anderem_format = []
for daten2013 in alledaten: #daten2013 sind die einzelnen string Objekte der Liste alledaten
datetime.datetime.strptime(daten2013, "%Y-%m-%d %H:%M:%S") #so lassen sich die String in datetime.dateime Objekte konvertieren
alledaten_in_anderem_format.append(datetime.datetime.strptime(daten2013, "%Y-%m-%d %H:%M:%S")) #alledaten_in_anderem_format --> Liste mit datetime.datetime Objekten
currencyrates.get_rate('USD', 'JPY', alledaten_in_anderem_format[1])# So bekomme ich die rate für einen einzelnen (hier den ersten) Wert der Liste alledaten_in_anderem_format. Dann sollte es doch auch als for loop gehen?
rates = []
for datum_anderes_format in alledaten_in_anderem_format: # "datum_anderes_format" für die Objekte der Liste alledaten_in_anderem_format
currencyrates.get_rate('USD', 'JPY', (datum_anderes_format))
rates.append(currencyrates.get_rate('USD', 'JPY', datum_anderes_format))
Es gibt mir folgende Fehlermeldung:
RatesNotAvailableError Traceback (most recent call last)
<ipython-input-198-3dcde99986a6> in <module>()
1 rates = []
2 for datum_in_anderem_format in alledaten_in_anderem_format:
----> 3 currencyrates.get_rate('USD', 'JPY', datum_in_anderem_format)
4 rates.append(currencyrates.get_rate('USD', 'JPY', datum_in_anderem_format))
C:\ProgramData\Anaconda3\lib\site-packages\forex_python\converter.py in get_rate(self, base_cur, dest_cur, date_obj)
67 base_cur, dest_cur, date_str))
68 return rate
---> 69 raise RatesNotAvailableError("Currency Rates Source Not Ready")
70
71 def convert(self, base_cur, dest_cur, amount, date_obj=None):
RatesNotAvailableError: Currency Rates Source Not Ready
Als date_obj gibt es date_obj=None an und Currency Rates Source Not Ready laut Fehlermeldung. Für einzelne Objekte der Liste hat es geklappt, aber da die Liste tausende Objekte enthält wäre eine loop der alle durchgeht ideal.