import pandas as pd
import numpy as np
def quantile_test():
"""
计算样本的分位数(0到1)
Return value at the given quantile.
计算的时候总共分3步,
1.对要计算的一组数据进行从小到大的排列
2.4个元素的数据,将其相邻的两个元素搭配,可分成3组 fraction = 3 * 计算样本的分位数(0到1)
3. 根据fraction 判断是哪组数据0-1是第一组。1到2是第二组......
4. linear: i + (j - i) * fraction
lower: i. 这组数据中的小值 higher: j. 这组数据中的大值,fraction 是第三步中的小数部分,意思是当前这组数据的0到1的分位数
"""
df = pd.DataFrame(np.array([[1, 1], [2, 100], [3, 10], [4, 100]]), columns=['a', 'b'])
print(df)
print("-----计算样本的分位数------")
print(df.quantile([.1, .2, .3, .4, .5, .6, .7, .8], numeric_only=True))
if __name__ == '__main__':
quantile_test()
返回结果:
a b
0 1 1
1 2 100
2 3 10
3 4 100
-----计算样本的分位数------
a b
0.1 1.3 3.7
0.2 1.6 6.4
0.3 1.9 9.1
0.4 2.2 28.0
0.5 2.5 55.0
0.6 2.8 82.0
0.7 3.1 100.0
0.8 3.4 100.0