Kurswertelisten automatisiert erstellen
Daten aus dem Internet
Es gibt zahlreiche Webseiten im Internet, die Daten zur Entwicklung des DAX bereit stellen, so z.B. auch auf der Seite Yahoo! Finanzen. Hier ein Ausschnitt aus dieser Seite:
Beachte hier insbesondere den Link, mit dem man die Daten aufbereitet für ein Tabellenkalkulationsprogramm
herunterladen kann.
Man erhält eine Datei table.csv
, in der die Daten im CSV-Format dargestellt sind.
Date,Open,High,Low,Close,Volume,Adj Close 2015-06-30,11058.040039,11137.139648,10897.969727,10944.969727,131523600,10944.969727 2015-06-29,11404.709961,11409.80957,10964.240234,11083.200195,130184700,11083.200195 2015-06-26,11387.129883,11561.830078,11373.44043,11492.429688,91723700,11492.429688 2015-06-25,11410.620117,11594.240234,11352.400391,11473.129883,73555500,11473.129883 2015-06-24,11566.349609,11589.349609,11364.450195,11471.259766,91865500,11471.259766
Aufbereitung der Daten
Aus diesen Daten lässt sich mit einer Python-Funktion eine Liste mit den gewünschten Kurswerten erstellen.
def aktienkursListe(csvDatei):
try:
datei = open(csvDatei, 'r', encoding='iso-8859-1')
liste = []
for zeile in datei:
jahr = zeile[0:4]
if jahr != 'Date':
daten = zeile.strip().split(',')
kurs = round(float(daten[6]), 2)
liste = liste + [kurs]
datei.close()
return liste
except:
return []
Mit einem Funktionsaufruf, bei dem man den Dateinamen mit den Rohdaten übergibt, erhält man die gewünschte Liste.
>>> aktienkursListe('table.csv')
[10944.97, 11083.2, 11492.43, 11473.13, 11471.26]
Aufgabe 1
Probiere das selbst aus. Erstelle so auch eine Liste mit allen Kursdaten des Jahres 2015.
Aufgabe 2
Teste auch die folgende Funktion. Was leistet sie? Warum macht es für viele Anwendungen Sinn, mit den hier erzeugten daten zu weiterzuarbeiten?
def aktienkursListeMitDatum(csvDatei):
try:
datei = open(csvDatei, 'r', encoding='iso-8859-1')
liste = []
for zeile in datei:
jahr = zeile[0:4]
if jahr != 'Date':
daten = zeile.strip().split(',')
datum = daten[0]
kurs = round(float(daten[6]), 2)
liste = liste + [(datum, kurs)]
datei.close()
return liste
except:
return []