2012-09-25 12 views
10

Quiero volver a muestrear un TimeSeries en una frecuencia diaria (exactamente 24 horas) comenzando en una determinada hora.Volver a muestrear TimeSeries por hora con determinada hora de inicio

igual:

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') 

El resultado me sale:

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

Resultado deseo: hace

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

Algunas semanas usted podría pasar '24H' al argumento freq y funcionó totalmente multa. Pero ahora combina '24H' a '1D'.

¿Estaba usando un error con '24H' que se solucionó ahora? ¿Y cómo puedo obtener el resultado deseado de un modo eficiente y pitónico (o pandas)?

versiones:

  • pitón 2.7.3
  • pandas 0.9.0rc1 (pero no funciona en 0.8.1, también)
  • numpy 1.6.1

Respuesta

16

Resample tiene un argumento base que cubre este caso:

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

Salida:

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

¡Muchas gracias! No entendí la documentación de los parámetros y pensé que se había agregado para los casos de muestreo superior. – MaM

+0

@MaM Estoy de acuerdo con usted. La documentación en este caso necesita un buen ejemplo. –

Cuestiones relacionadas