pandas
Frankfurters CSV-Endpoint lässt sich direkt in ein DataFrame laden, sodass ein Kursabruf mit einer einzigen Zeile gelingt. Der Grund, warum du Frankfurter statt einer schnellen Marktkurs-Abfrage nutzen solltest, ist Reproduzierbarkeit: Lege eine feste Quelle fest, und dein Notebook bleibt nachvollziehbar und auditierbar. Historische Kurse werden nicht stillschweigend korrigiert, sodass ein heute ausgeführter Backtest genau den gleichen Ergebnissen entspricht wie im Vorjahr.
Schnellstart
Verweise mit read_csv direkt auf den CSV-Endpoint:
import pandas as pd
df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur,gbp")Du erhältst ein date,base,quote,rate-DataFrame mit einer Zeile pro Zielwährung.
Betrag umrechnen
Die CSV-Ausgabe liefert den Kurs, nicht den umgerechneten Gesamtbetrag. Multipliziere deinen Betrag mit der Spalte rate. Für einen einzelnen Skalarwert ohne pandas fragst du den flachen Kurs-Endpoint mit requests ab:
import requests
rate = requests.get("https://api.frankfurter.dev/v2/rate/usd/eur").json()["rate"]
total = 100 * rateOffizielle Quelle festlegen
Standardmäßig erhältst du den Mischkurs aller Quellen. Hänge providers an, um eine bestimmte Institution festzulegen, was Analysen prüfbar hält: Viele Rechtsordnungen verlangen den Kurs ihrer eigenen Zentralbank für die Umrechnung von Fremdwährungsbeträgen.
df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur&providers=ecb")ECB- Referenzkurs der Europäischen Zentralbank, der Standard für EU-Umsatzsteuer und Zoll.
NBP- Narodowy Bank Polski. Polnische Umsatz- und Körperschaftsteuer rechnen zum NBP-Kurs um.
CNB- Tschechische Nationalbank, Referenz für tschechische Buchhaltung und Steuern.
BCB- Banco Central do Brasil PTAX, die Referenz für brasilianische Verträge und Steuern.
BANXICO- Banco de México FIX-Kurs zur Begleichung von US-Dollar-Verbindlichkeiten.
Alle Quellen ansehen. Eine festgelegte Quelle folgt ihrem eigenen Veröffentlichungsrhythmus, sodass ihr neuester Kurs dem kombinierten Kurs um einen Tag hinterherhinken kann.
Historische Zeitreihen
Nutze from für einen Zeitraum und group=month für eine Zeile pro Monat. Parse die Datumsspalte, setze sie als Index und erstelle Diagramme oder Resamplings. Hier zahlt sich Frankfurter im Notebook aus: lange, stabile Zeitreihen, die nicht nachträglich verändert werden.
df = pd.read_csv(
"https://api.frankfurter.dev/v2/rates.csv?from=1949-12-01&base=usd"es=gbp&providers=bbk&group=month",
parse_dates=["date"],
index_col="date",
)
df["rate"].plot() Das ruft den US-Dollar gegenüber dem britischen Pfund bis 1949 aus dem Archiv der Deutschen Bundesbank ab. Du kannst sehen, wie die Cable-Bindung von 2,80 $ jahrelang hielt und 1967 brach. Weit zurückreichende Historie liefern die Frankfurter Devisenfixings der Bundesbank: der Dollar gegen die D-Mark ab 1948, die meisten anderen Dollar-Kurse von 1949 bis 1970. Ab 1999 übernimmt die Europäische Zentralbank; eine durchgehende moderne Zeitreihe nutzt den Standard-Mischkurs oder providers=ecb.