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