2017-10-31 4 views
2

Wie implementiere ich Gruppierungsdaten nach benutzerdefiniertem Zeitbereich? Ich war in der Lage, die Daten nach Stunden zu gruppieren, aber ich möchte sie in Intervallen von 1 Stunde und 1 Minute gruppieren.pandas TimeGroup benutzerdefinierter Frequenzbereich

So etwas wie dieser Code: df.groupby(pd.TimeGrouper('1H:1Min')).mean() (. Aber das gibt einen Fehler)

Mein Ziel ist es, den Durchschnittswert pro 1H:1Min Intervalle zu erhalten. Hoffe, du könntest mir helfen.

Antwort

2

Verwenden 3660 Sekunden

df.groupby(pd.TimeGrouper('3660S')).mean() 

Oder 61 Minuten

df.groupby(pd.TimeGrouper('61Min')).mean() 

oder was @root sagte in den Kommentaren

df.groupby(pd.TimeGrouper('1H1Min')).mean() 

den Datenrahmen Betrachten df

df = pd.DataFrame(np.arange(10), pd.date_range('2017', periods=10, freq='30Min')) 

Alle Gruppierungen ergeben

     0 
2017-01-01 00:00:00 1.0 
2017-01-01 01:01:00 3.5 
2017-01-01 02:02:00 5.5 
2017-01-01 03:03:00 7.5 
2017-01-01 04:04:00 9.0 
+2

Oder '1H1Min' (oder' 1H1T') ist der richtige Weg Frequenz Aliase zu kombinieren. – root

+0

Ich entschuldige mich, wenn dies eine einfache Frage sein könnte. Ich bin nur neu für Pandas und Programmierung im Allgemeinen und lese immer noch die Dokumentation. Ich wusste nicht, dass ich nur 3660s oder 1H1Min verwenden könnte. Stuck in Überanalyse. Danke vielmals! –

+2

@EmmanD. Bitte entschuldige dich nicht! Du hast getan, wovor viele Angst haben. Und das ist riskant, dumm auszusehen. Es ist nichts Dummes, wenn man versucht, sich von der Unwissenheit zu befreien. Es war eine gute Frage. – piRSquared

Verwandte Themen