Zeitformatierung

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 bin fleissig am Python üben und stosse laufend auf neue Probleme.

Soeben habe ich versucht die Daten von zwei Quellen gleich darstellen zu lassen. Bei der einen Datenreihe sieht mein Datenformat wie folgt aus 2010-12-31. Das ist auch das gewünschte Format.
Bei der zweiten Datenreihe sehen die Daten so aus 20110103.
Wie Ihr untenstehenden Tabellen entnehmen könnt habe ich versucht das Datum anders darzustellen, was gründlich misslang. Zum einen kommt Python mit einem weiteren Format und zum anderen startet die Datumsreihe bei 1970-01-01 allerdings mit den Daten vom 20110103... Was habe ich falsch gemacht?

Unnamed: 0 Mkt-RF SMB HML RF
0 20110103 1.18 0.53 0.79 0.0
1 20110104 -0.26 -1.38 0.11 0.0
2 20110105 0.59 0.61 0.14 0.0
3 20110106 -0.15 -0.06 -0.33 0.0
4 20110107 -0.21 -0.25 -0.30 0.0

Unnamed: 0 Mkt-RF SMB HML RF
0 1970-01-01 00:00:00.020110103 1.18 0.53 0.79 0.0
1 1970-01-01 00:00:00.020110104 -0.26 -1.38 0.11 0.0
2 1970-01-01 00:00:00.020110105 0.59 0.61 0.14 0.0
3 1970-01-01 00:00:00.020110106 -0.15 -0.06 -0.33 0.0
4 1970-01-01 00:00:00.020110107 -0.21 -0.25 -0.30 0.0
Zudem habe ich eine grundsätzliche Frage. Müssen die Daten überhaupt im selben Format sein um diese zusammenzuführen oder ist Python so intelligent, dass es unterschiedliche Darstellungen zusammenführen kann?

Bild
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Jetzt wäre noch spannend, mit welchem Code Du das gemacht hast? Pandas?
Benutzeravatar
snafu
User
Beiträge: 6867
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Es wäre schon sinnvoll, die Daten alle im gleichen Format vorliegen zu haben. Dann aber nicht als Text, sondern z.B. als datetime-Objekte. Die haben eine Methode zum Einlesen der Daten (strptime). Da musst du je nach Quelle das passende Format angeben und kannst dann mit den so erstellten Objekten weiterarbeiten.
Bebbi
User
Beiträge: 144
Registriert: Dienstag 21. April 2020, 19:21

Ja, ich habe das mit pandas und folgendem Befehl versucht

market_return['Unnamed: 0'] = pd.to_datetime(market_return['Unnamed: 0'])

ich hoffe das bringt Euch was....
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Umwandlung in eine Datumsspalte machst Du gleich beim Einlesen:

Code: Alles auswählen

parser = lambda d: pd.datetime.strptime(d, '%Y%m%d')
market_data = pd.read_csv(..., date_parser=parser)
Bebbi
User
Beiträge: 144
Registriert: Dienstag 21. April 2020, 19:21

ok, besten Dank
Antworten