2012-09-25 11 views
10

Desidero ricampionare una TimeSeries in frequenza giornaliera (esattamente 24 ore) a partire da una determinata ora.Ricampionamento orario TimeSeries con un'ora di inizio specifica

come:

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

risultato che ottengo:

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

Risultato Desidero:

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

Qualche settimana fa si poteva passare '24H' all'argomento freq e ha funzionato tutto bene. Ma ora combina '24H' a '1D'.

Stavo usando un bug con '24H' che è stato riparato ora? E come posso ottenere il risultato desiderato in modo efficiente e pitonioso (o panda)?

versioni:

  • pitone 2.7.3
  • panda 0.9.0rc1 (ma non funziona in 0.8.1, troppo)
  • NumPy 1.6.1

risposta

16

Resample ha un argomento base che copre questo caso:

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

Uscita:

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

Grazie mille! Non ho capito la documentazione dei parametri e ho pensato che fosse stata aggiunta per i casi di upsampling. – MaM

+0

@MaM Sono d'accordo con te. La documentazione in questo caso ha bisogno di un buon esempio. –

Problemi correlati