Ungünstiges Zeitstempelformat einlesen über zwei Spalten mit Intervall

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
ff123
User
Beiträge: 5
Registriert: Montag 1. Oktober 2018, 17:18

Samstag 6. Oktober 2018, 17:11

Hallo zusammen, ich habe mal wieder ein kleines Problem mit einem etwas ungünstigen Zeitstempel. Eventeull hat ja jemand eine Idee wie ich diesen sinnvoll unter Pandas einlesen kann
Also Pro Tag ( Datum ist angegeben) habe ich jeweils 24 einstündige Intervalle gegeben zu denen jeweils ein Mittelwert gebildet ist.
Die Daten leigen als Exceldatei vor. In der ersten Spalte der Tag und in der folgenden Spalte dann die passende Stunde z.B. 21-22

31.12.15 23-24
31.12.15 22-23
31.12.15 21-22
31.12.15 20-21
31.12.15 19-20
31.12.15 18-19
Also etwa so nur eben in einer Liste.

Über Vorschläge wäre ich äußerst dankbar.
Beste Grüße
__deets__
User
Beiträge: 3654
Registriert: Mittwoch 14. Oktober 2015, 14:29

Samstag 6. Oktober 2018, 17:17

Sind die immer geordnet & vollständig? Dann schmeiß die Spalte doch weg. Steht doch nur redundante Information drin.

Oder du benutzt apply auf der spalte.
Benutzeravatar
DeaD_EyE
User
Beiträge: 233
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Sonntag 7. Oktober 2018, 07:14

Kenne Pandas nicht. Kann apply auf eine Spalte angwandt, zwei Spalten daraus erzeugen? So würde ich das versuchen. Einmal ein DT-Objekt für den Anfang und eins für das Ende.
sourceserver.info - sourceserver.info/wiki/ - Support für HL2-Server
Benutzeravatar
__blackjack__
User
Beiträge: 1401
Registriert: Samstag 2. Juni 2018, 10:21

Sonntag 7. Oktober 2018, 09:53

Also wenn das immer eine Stunde ist, braucht man ja nur einen Zeitstempel, da der das Ende ja mit beschreibt. Da würde ich in den Konvertierungscode dann eher einen Test einbauen ob bei diesem 'a-b'-Muster wirklich immer b = a + 1 gilt.

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
Benutzeravatar
DeaD_EyE
User
Beiträge: 233
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Sonntag 7. Oktober 2018, 12:10

Ich frage deswegen, weil ja Pandas ein sehr mächtiges Framework ist. Einen großen Datensatz innerhalb einer For-Schleife zu mutieren, halte ich für nicht besonders effizient.
Sofern es dafür Funktionen gibt, sollte man diese auch nutzen.

Das wäre so, als wenn ich mit Numpy Matrixberechnungen in einer For-Schleife realisieren würde, anstatt die in C implementierten Funktionen von Numpy zu nutzen, die in Python auch viel einfacher anzuwenden sind.
sourceserver.info - sourceserver.info/wiki/ - Support für HL2-Server
__deets__
User
Beiträge: 3654
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sonntag 7. Oktober 2018, 12:14

Bei eine solchen Angabe läuft es aber darauf hinaus. Das apply ist effizienter, aber nicht viel. Es ist eben genau nicht vektorisiert. Weil man Python Code laufen lässt.

Apply kann auch keine Spalte erzeugen. Das könnte man ggf vorher erledigen, da es aber eh immer genau 1 Stunde ist, ist der Mehrwert nicht gegeben.
Benutzeravatar
DeaD_EyE
User
Beiträge: 233
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Sonntag 7. Oktober 2018, 12:39

Ich verwende Pandas noch nicht. Mein erster Ansatz wären immer Generatoren. Die kann man dann schön verketten und sie sind effizient.
Es kommt ja auch drauf an, mit welcher Datenmenge man hantiert. Wenn das gerade mal 1000 Einträge sind, wird man über Optimierung und Effizienz erstmal nicht nachdenken.
sourceserver.info - sourceserver.info/wiki/ - Support für HL2-Server
Antworten