2012-09-25 12 views
10

Chcę ponownie próbkować TimeSeries w codziennej (dokładnie 24 godzin) częstotliwości zaczynającej się o określonej godzinie.Resample godzinne TimeSeries z pewną godziną początkową

odczuwalna:

index = date_range(datetime(2012,1,1,17), freq='H', periods=60) 

ts = Series(data=[1]*60, index=index) 

ts.resample(rule='D', how='sum', closed='left', label='left') 

Wynik uzyskać:

2012-01-01 7 
2012-01-02 24 
2012-01-03 24 
2012-01-04 5 
Freq: D 

Wynik życzę:

2012-01-01 17:00:00 24 
2012-01-02 17:00:00 24 
2012-01-03 17:00:00 12 
Freq: D 

Kilka tygodni temu można przekazać '24H' do freq argumentem i to działało zupełnie w porządku. Ale teraz łączy '24H' z '1D'.

Czy został użyty błąd z '24H', który został już naprawiony? A jak mogę uzyskać pożądany wynik w sposób skuteczny i pythonic (lub pandy) z powrotem?

wersje:

  • python 2.7.3
  • pandy 0.9.0rc1 (ale nie działa w 0.8.1, zbyt)
  • NumPy 1.6.1

Odpowiedz

16

Resample ma argument base, który obejmuje ten przypadek:

ts.resample(rule='24H', closed='left', label='left', base=17).sum() 

Wyjście:

2012-01-01 17:00:00 24 
2012-01-02 17:00:00 24 
2012-01-03 17:00:00 12 
Freq: 24H 
+1

Wielkie dzięki! Nie rozumiałem tej dokumentacji parametrów i uważałem, że została dodana do przypadków upsamplowania. – MaM

+0

@MaM Zgadzam się z tobą. Dokumentacja w tym przypadku potrzebuje dobrego przykładu. –

Powiązane problemy