python series - Python Pandas - Calcolo del quantile manualmente




1 Answers

La funzione quantile assegnerà le percentuali in base all'intervallo di dati.

Nel tuo caso:

  • -0.204708 sarebbe considerato lo 0 ° percentile,
  • 0.478943 sarebbe considerato il 50 ° percentile e
  • 1.965781 sarebbe considerato il 100 ° percentile.

Quindi puoi calcolare il 90 ° percentile nel modo seguente (usando l'interpolazione lineare tra il 50 ° e il 100 ° percentile:

>>import numpy as np

>>x =np.array([-0.204708,1.965781,0.478943])
>>ninetieth_percentile = (x[1] - x[2])/0.5*0.4+x[2]
>>ninetieth_percentile    
1.6684133999999999

Nota che i valori 0.5 e 0.4 derivano dal fatto che due punti dei tuoi dati coprono il 50% dei dati e 0.4 rappresenta la quantità superiore al 50% che desideri trovare (0.5 + 0.4 = 0.9). Spero che questo abbia un senso.

numpy percentile

Sto cercando di calcolare manualmente quantile per i valori di una colonna, ma non sono in grado di trovare manualmente il valore quantile corretto utilizzando la formula rispetto all'output di risultato di Pandas. Ho cercato soluzioni diverse, ma non ho trovato la risposta giusta

In [54]: df

Out[54]:
    data1   data2       key1    key2
0 -0.204708 1.393406    a       one
1 0.478943  0.092908    a       two
2 1.965781  1.246435    a       one

In [55]: grouped = df.groupby('key1')
In [56]: grouped['data1'].quantile(0.9)
Out[56]:
key1
a 1.668413

utilizzando la formula per trovarlo manualmente, n è 3 in quanto ci sono 3 valori nella colonna data1

quantile(n+1)

applicando i valori della colonna df1

=0.9(n+1) 
=0.9(4)
= 3.6

quindi la 3.6a posizione è 1.965781, quindi come fa il panda a 1.668413?




Related

python pandas statistics quantile