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