计算方法与举例
为了更一般化,在计算的过程中,我们考虑p分位。当p=0.25 0.5 0.75 时,就是在计算四分位数。
首先确定p分位数的位置(有两种方法):
方法1 pos = (n+1)*p
方法2 pos = 1+(n-1)*p
pandas 中使用的是方法2确定的。
计算
df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),columns=['a', 'b'])
print(df.quantile(.1))
结果是:
a 1.3
b 3.7
Name: 0.1, dtype: float64
默认使用的是linear 插值
计算a列
pos = 1 + (4 - 1)*0.1 = 1.3
fraction = 0.3
value = 1 + (2 - 1) * 0.3 = 1.3
计算b列
pos = 1.3
value = 1 + (10 - 1) * 0.3 = 3.7
在b中,假如pos等于2.5呢,即在2-3之间,那i对应就是10,j对应就是100,ret = 10 + (100-10) * 0.5 = 55