1樓:啟鐸
剛在理解python中quantile這個函式,搜到了這個問題,那就順便答一下,也加深我的理解。
首先這個函式都知道了是求樣本的分位數,
他的語法是
DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation=』linear』)
這些引數都可以不指定,上面有預設的值。但我們一般要根據需要指定q。
axis,=0計算每列,=1時計算每行,可切片指定
interpolation插值方式,有如下方法
引數q我理解的就是q分位的意思,
q=0.5,代表的是等分位。
q=0.25,0.5,0.75,代表的是第乙個、第二個、第三個四等分位
q=0.1,0.2,。。。,代表的是第乙個、第二個、、、、十等分位
。。。這個函式的運算過程如下:
先計算位置(pos),再計算返回值(ret),也就是我們說的分位數
pos=1+(n-1)p
n是這個陣列的個數(numeric_only=True,只算數字的個數)
interpolation=』linear』線性插值
如何計算返回值呢,舉個例子
假定乙個原始資料序號a
b0110012
102310034
1import
pandas
aspd
import
numpy
asnpdf=
pd.DataFrame(np
.array
([[1
,100],[
2,10],[3
,100],[
4,1]]),
columns=[
'a',
'b'])
print(df
.quantile
(0.1
))計算p=0.1時,a列和b列的分位數,結果是
a 1.3
b 3.7
Name: 0.1, dtype: float64
那麼我們就按上面說的來計算,先計算pos(pos=1+(n-1)p),
a的pos是1+(4-1)0.1=1.3
b的pos是1+(4-1)0.1=1.3
1.3代表的是位置在第乙個數和第二個數之間
注意:計算分位數是一定是先將陣列從小到大排列
對a列來說,第乙個數是1,第二個數是2,因為是線性插值(一次函式y=kx+b,x是pos,y是ret,這裡k=1,b=y-x=0)
對b列,第乙個數是1,第二個數是10(從小到大排列),k=9,b=-8
a的ret=1*1.3+0=1.3
b的ret=9*1.3-8=3.7
與上面quantile函式輸出的分位值結果一致
分位數和四分間距到底是什麼?算出來有什麼意義?
靜學社 學無止境 描述統計學裡面有很多指標,比如集中趨勢度量的平均值,中位數,眾數等,離散程度度量的方差,四分位差,分位數等都是在幹什麼?不知道大家有沒有仔細思考過?如果沒有思考過,那麼可以暫時停下來好好想想。要分析資料,首先就是要了解你的資料,了解資料最全面的指標就是資料的概率分布。問題是,通常我...
月入四位數的二三十歲女生(家境普通)是怎麼買得起各種奢侈品的?萬把塊的包,衣服之類。?
花禕 可以每個月攢一點,就像支付寶裡餘額寶有個心願資金,就是設定好金額每個月會自動從卡里扣錢。如果月入6000 又沒有很大租房壓力的話,一年買個萬把塊的奢侈品包包和幾件奢侈品衣服還是沒問題的。如果實在沒有這種條件也不必強求。多學學搭配,找準自己的風格,小牌子一樣好看。現在很多小眾牌子都很受ins博主...
2023年司法考試卷四分數你們怎麼看?
黃玉梅 抱怨那麼多,不如冷靜地 如實的捫心自問,自己寫的答案和給出的標準答案差距在哪!非法本在職,考了兩次,去年355,今年407,今年的複習時間是去年的將近兩倍。所以一分耕耘一分收穫,而且耕耘的方向要找對。緣木求魚永遠得不到魚。卷四本來就是考法律思維和知識儲備。說白了,前三卷有些題,你不會,但是可...