2016-04-12 18 views
5

Ho la seguente dataframe:quantici panda in serie contenenti infinito?

calc_value 
0   NaN 
1 0.000000 
2 0.100000 
3 0.500000 
4 2.333333 
5   inf 

Ora voglio calcolare alcuni quantili:

print df.quantile(.1)['calc_value'] 
print df.quantile(.25)['calc_value'] 
print df.quantile(.5)['calc_value'] 
print df.quantile(.75)['calc_value'] 
print df.quantile(.9)['calc_value'] 

Ma questo restituisce:

0.04 
0.1 
0.5 
nan 
inf 

non capisco il motivo per cui il quantile 75 ° funziona in questo modo. Non dovrebbe essere l'infinito?

risposta

0

ritengo può essere un problema in NumPy:

np.percentile([0,1,np.inf], 50) 
Out[63]: nan 

mentre

np.median([0, 1, np.inf]) 
Out[65]: 1.0 

Invece di semplicemente prendendo un valore di indice 1, assume valori in indici 1 e 2 con pesi 1 e 0. Quindi risulta in 0 * inf.


Nel tuo caso il risultato dovrebbe essere 2.33 (provate con, per esempio, df.iloc[5,0] = 1e10).

Problemi correlati