ich jetzt zur Analyse einer Reihe von stündlichen Daten seit geraumer Zeit mit Python und Pandas gearbeitet und finde es sehr schön (Von Matlab.)Pandas, python - wie bestimmte Zeiten in Zeitreihen wählen
Jetzt bin ich irgendwie steckengeblieben. Ich habe meine DataFrame
wie folgt aus:
SamplingRateMinutes=60
index = DateRange(initialTime,finalTime, offset=datetools.Minute(SamplingRateMinutes))
ts=DataFrame(data, index=index)
Was soll ich jetzt tun ist, um die Daten für alle Tage in den Stunden 10 bis 13 und 20 bis 23 auszuwählen, um die Daten für weitere Berechnungen zu verwenden. Bisher geschnitten ich die Daten
selectedData=ts[begin:end]
mit Und ich bin sicher, dass irgendeine Art von schmutzigem Looping erhält die benötigten Daten auszuwählen. Aber es muss einen eleganteren Weg geben, genau zu indizieren, was ich will. Ich bin sicher, dies ist ein häufiges Problem und die Lösung in Pseudo-Code sollte etwas so aussehen:
myIndex=ts.index[10<=ts.index.hour<=13 or 20<=ts.index.hour<=23]
selectedData=ts[myIndex]
Zu erwähnen Ich bin Ingenieur und kein programer :) ... noch
Funktioniert! Danke vielmals! –
Hier ist, wie diese Lösung in der Syntax für 0.10 implementiert und mit Wes 'Antwort unten kombiniert werden würde: 'dr = pd.date_range (dt (2009,1,1), dt (2010,12,31), Freq = "H"); dt = pd.DataFrame (rand (len (dr), 2), dr); Stunde = dt.index.hour; selector = ((10 <= Stunde) & (Stunde <= 13)) | ((20 <= Stunde) & (Stunde <= 23)) data = dt [Selektor] ' –