index - Python Pandas-cálculo cuantil manualmente
pandas python (1)
Estoy intentando calcular el cuantil para los valores de una columna manualmente, pero no puedo encontrar el valor de cuantil correcto manualmente usando la fórmula en comparación con la salida del resultado de Pandas. Busqué diferentes soluciones, pero no encontré la respuesta correcta
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
usando la fórmula para encontrarlo manualmente, n es 3 ya que hay 3 valores en la columna data1
quantile(n+1)
aplicando los valores de la columna df1
=0.9(n+1)
=0.9(4)
= 3.6
entonces, la posición 3.6 es 1.965781, entonces, ¿cómo da pandas 1.668413?
La función quantile
asignará porcentajes basados en el rango de sus datos.
En tu caso:
- -0.204708 se consideraría el percentil 0,
- 0.478943 se consideraría el percentil 50 y
- 1,965781 se consideraría el percentil 100.
De modo que podría calcular el percentil 90 de la siguiente manera (utilizando la interpolación lineal entre el percentil 50 y el percentil 100):
>>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
Tenga en cuenta que los valores 0.5 y 0.4 provienen del hecho de que dos puntos de sus datos abarcan el 50% de los datos y 0.4 representa la cantidad por encima del 50% que desea encontrar (0.5 + 0.4 = 0.9). Espero que esto tenga sentido.