2013-08-05 19 views

risposta

25

resample è più generale di asfreq. Ad esempio, utilizzando resample è possibile passare una funzione arbitraria per eseguire il binning su un oggetto Series o DataFrame in contenitori di dimensioni arbitrarie. asfreq è un modo conciso per modificare la frequenza di un oggetto DatetimeIndex. Fornisce anche funzionalità di riempimento.

Come dice la documentazione panda, asfreq è un involucro sottile attorno a una chiamata a date_range + una chiamata a . Vedere here per un esempio.

Un esempio di resample che uso nel mio lavoro quotidiano sta calcolando il numero di picchi di un neurone in 1 secondo bidoni da ricampionamento una vasta gamma booleano dove True significa "picco" e False significa "nessun picco". Posso farlo facilmente come large_bool.resample('S', how='sum'). Tipo di pulito!

asfreq può essere utilizzato quando si desidera modificare un DatetimeIndex per avere una frequenza diversa mantenendo gli stessi valori nell'indice corrente.

Ecco un esempio in cui essi sono equivalenti:

In [6]: dr = date_range('1/1/2010', periods=3, freq=3 * datetools.bday) 

In [7]: raw = randn(3) 

In [8]: ts = Series(raw, index=dr) 

In [9]: ts 
Out[9]: 
2010-01-01 -1.948 
2010-01-06 0.112 
2010-01-11 -0.117 
Freq: 3B, dtype: float64 

In [10]: ts.asfreq(datetools.BDay()) 
Out[10]: 
2010-01-01 -1.948 
2010-01-04  NaN 
2010-01-05  NaN 
2010-01-06 0.112 
2010-01-07  NaN 
2010-01-08  NaN 
2010-01-11 -0.117 
Freq: B, dtype: float64 

In [11]: ts.resample(datetools.BDay()) 
Out[11]: 
2010-01-01 -1.948 
2010-01-04  NaN 
2010-01-05  NaN 
2010-01-06 0.112 
2010-01-07  NaN 
2010-01-08  NaN 
2010-01-11 -0.117 
Freq: B, dtype: float64 

Per quanto riguarda quando utilizzare: dipende dal problema che avete in mente ... cura da condividere?