2013-02-13 7 views
18

I minuti hanno dati OHLCV basati sul campo di apertura/prima ora (9: 30-10: 30 EST EST). Sto cercando di ricampionare questi dati in modo da ottenere un valore di 60 minuti e quindi calcolare l'intervallo.Resampling Minute data

Quando chiamo la funzione dataframe.resample() sui dati ottengo due righe e la riga iniziale inizia alle 9:00. Sto cercando di ottenere solo una riga che inizia alle 9:30.

Nota: i dati iniziali iniziano alle 9:30.

enter image description here

Edit: l'aggiunta di codice:

# Extract data for regular trading hours (rth) from the 24 hour data set 
rth = data.between_time(start_time = '09:30:00', end_time = '16:15:00', include_end = False) 

# Extract data for extended trading hours (eth) from the 24 hour data set 
eth = data.between_time(start_time = '16:30:00', end_time = '09:30:00', include_end = False) 

# Extract data for initial balance (rth) from the 24 hour data set 
initial_balance = data.between_time(start_time = '09:30:00', end_time = '10:30:00', include_end =  False) 

rimasto bloccato ha cercato di separare il range di apertura in base alla data individuale e ottenere l'equilibrio iniziale

conversion = {'Open' : 'first', 'High' : 'max', 'Low' : 'min', 'Close' : 'last', 'Volume' : 'sum'} 
sample = data.between_time(start_time = '09:30:00', end_time = '10:30:00', include_end = False) 
sample = sample.ix['2007-05-07'] 
sample.tail() 

sample.resample('60Min', how = conversion) 

Per impostazione predefinita resample dalle ore il inizio dell'ora. Mi piacerebbe che iniziasse da dove iniziano i dati.

+4

E 'più facile per noi se si copia e si incolla il testo, piuttosto che utilizzare un'immagine :) –

risposta

21

È possibile utilizzare il base argomento resample:

sample.resample('60Min', how=conversion, base=30) 

Da the above docs-link:

base: int, default 0
      Per frequenze equamente suddividono 1 giorno, il “ origine "degli intervalli aggregati.
        Ad esempio, per la frequenza '5min', base potrebbe variare da 0 a 4. Il valore predefinito è 0

+1

Grazie Andy che ha fatto il trucco. Molto apprezzato. – aozkan

+2

Andy, tu rock! Ho sprecato un sacco di tempo cercando di ottenere 'resample ('H', base = 30)' per funzionare, fino a quando ho visto il tuo trucco da '60 minuti'. –