2017-09-21 7 views
0

Ich möchte den rollierenden Durchschnitt einer Spalte (nennen Sie es C1) über die letzten 15 Minuten berechnen. c1 hat den Datentyp der Dezimalzahl. Ich importierte np und pd. Und was ich getan habe ist c2 = c1.rolling('900s').mean() weil 15min * 60s/min = 900s und das funktioniert. Aber ich möchte immer noch das Zeitformat für die Minute wissen. Kann mir jemand dabei helfen? Es wird auch das Beste sein, wenn mir jemand andere Zeitformate wie Jahr, Monat, Quartal, Tag, Stunde zur Verfügung stellen kann. Danke.Python-Zeitformat für rollendes Mittel

+0

Es muss hier einige Tippfehler geben. 15 * 60 = 900? Was ist der Datentyp der Spalte? Benutzt du numpy? Pandas? Soll rollig rollen? – BHawk

Antwort

0

Unter der Annahme, dass ich Dich richtig verstanden:

Zuerst habe ich einen Datenrahmen von Zeiten indiziert bauen, die für 15 Minuten mit einer Datenspalte von Gaußsche Rauschen führen.

>>> import pandas as pd 
>>> times = [pd.Timestamp(1996,5,6,11,m) for m in range(1,16)] 
>>> import random 
>>> v = [random.gauss(0,1) for m in range(1,16)] 
>>> df = pd.DataFrame({'V': v}, index=times) 

Dann dupliziere ich Ihr Ergebnis.

>>> df.rolling('900s').mean() 
          V 
1996-05-06 11:01:00 -1.263849 
1996-05-06 11:02:00 -0.806934 
1996-05-06 11:03:00 0.344626 
1996-05-06 11:04:00 0.497085 
1996-05-06 11:05:00 0.549562 
1996-05-06 11:06:00 0.554746 
1996-05-06 11:07:00 0.630223 
1996-05-06 11:08:00 0.650979 
1996-05-06 11:09:00 0.575184 
1996-05-06 11:10:00 0.576052 
1996-05-06 11:11:00 0.438371 
1996-05-06 11:12:00 0.577996 
1996-05-06 11:13:00 0.392422 
1996-05-06 11:14:00 0.292866 
1996-05-06 11:15:00 0.211225 

Jetzt kann ich auch 5-Minuten-Mittel bekommen. Dazu habe ich die Dokumentation unter Offset Aliases verwendet.

>>> df.rolling('5min').mean() 
          V 
1996-05-06 11:01:00 -1.263849 
1996-05-06 11:02:00 -0.806934 
1996-05-06 11:03:00 0.344626 
1996-05-06 11:04:00 0.497085 
1996-05-06 11:05:00 0.549562 
1996-05-06 11:06:00 0.918466 
1996-05-06 11:07:00 1.205086 
1996-05-06 11:08:00 0.834790 
1996-05-06 11:09:00 0.637663 
1996-05-06 11:10:00 0.602542 
1996-05-06 11:11:00 0.298720 
1996-05-06 11:12:00 0.504877 
1996-05-06 11:13:00 -0.021270 
1996-05-06 11:14:00 -0.215305 
1996-05-06 11:15:00 -0.518430