python pandas df.quantile 计算样本的分位数

jzlixiao 2020-06-14

import pandas as pdimport 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