2016-07-16 9 views
2

私はpandasシリーズを使用しています。私はquantileを表すインデックス値を探したいと思います。quantileのインデックスを見つける方法

私が持っている場合:

np.random.seed(8) 
s = pd.Series(np.random.rand(6), ['a', 'b', 'c', 'd', 'e', 'f']) 
s 

a 0.873429 
b 0.968541 
c 0.869195 
d 0.530856 
e 0.232728 
f 0.011399 
dtype: float64 

をそして私は私が知っているポイントを表しsのインデックス値が何であるかをされたい何

0.70002511588475946 

を取得

s.quantile(.5) 

行いますその分位数の直前。この場合、インデックス値はdであるはずです。

答えて

1

sort_valuesを使用して、順序を逆転させ、計算された分位点以下のすべてを見つけ、idxmaxを見つけます。

(s.sort_values()[::-1] <= s.quantile(.5)).idxmax() 

または:

(s.sort_values(ascending=False) <= s.quantile(.5)).idxmax() 

は、我々はそれを機能することができます

def idxquantile(s, q=0.5, *args, **kwargs): 
    qv = s.quantile(q, *args, **kwargs) 
    return (s.sort_values()[::-1] <= qv).idxmax() 

idxquantile(s) 
関連する問題