1
假設我有重複了一系列的:熊貓等級:對於方法的意外行爲=「密」和PCT =真
import pandas as pd
ts = pd.Series([1,2,3,4] * 5)
,我要計算它的百分等級。 它始終是一個有點棘手計算與多個匹配的行列,但我覺得我得到意想不到的結果:
ts.rank(method = 'dense', pct = True)
Out[112]:
0 0.05
1 0.10
2 0.15
3 0.20
4 0.05
5 0.10
6 0.15
7 0.20
8 0.05
9 0.10
10 0.15
11 0.20
12 0.05
13 0.10
14 0.15
15 0.20
16 0.05
17 0.10
18 0.15
19 0.20
dtype: float64
所以我得到的百分[0.05,0.1,0.15,0.2],在這裏我猜預期的輸出可能是[0.25,0.5,0.75,1],即將輸出乘以重複值的數量。
我的猜測是,爲了計算百分位數,pd.rank簡單地除以觀察次數,這對於method ='dense'是錯誤的。
所以我的問題是:
你是否同意輸出是意外/錯誤
我怎樣才能得到我預期的輸出,即分配給每個複製的百分等級,我會得到,如果我沒有在 系列中有任何重複?
這看起來像已經修正了一個錯誤,這正常工作對我來說:'在[213]: TS = pd.Series([1,2,3,4] * 2) ts.rank(方法= '密',PCT =真) 缺貨[213]: 0 0.125 1 0.250 2 0.375 3 0.500 4 0.125 5 0.250 6 0.375 7 0.500 D型細胞:float64'我使用版本0.19.2 – EdChum
你不希望最大值(4)的百分位數高於0.5嗎? 實際上看起來行爲仍然存在,就像您將結果乘以2(重複值的次數),您會得到更有意義的結果。 – FLab
你真的在'ts.rank(method ='first',pct = True)'後? – EdChum