2013-06-24 7 views
17

私は、その値に基づいてパーセンタイルバケットでデータを分類しようとしています。私のデータは次のようになります。パンダでパーセンタイルバケットを作成する

a = pnd.DataFrame(index = ['a','b','c','d','e','f','g','h','i','j'], columns=['data']) 
a.data = np.random.randn(10) 
print a 
print '\nthese are ranked as shown' 
print a.rank() 

     data 
a -0.310188 
b -0.191582 
c 0.860467 
d -0.458017 
e 0.858653 
f -1.640166 
g -1.969908 
h 0.649781 
i 0.218000 
j 1.887577 

these are ranked as shown 
    data 
a  4 
b  5 
c  9 
d  3 
e  8 
f  2 
g  1 
h  7 
i  6 
j 10 

このデータのランク付けには、ランク付け機能を使用しています。しかし、私はトップ20%のバケツを作ることに興味があります。上記の例では、これは私は望ましい結果に

答えて

24
In [13]: df[df > df.quantile(0.8)].dropna() 
Out[13]: 
     data 
c 0.860467 
j 1.887577 

In [14]: list(df[df > df.quantile(0.8)].dropna().index) 
Out[14]: ['c', 'j'] 
を取得するにはどうすればよいのラベルを含むリスト[「C」、「J」]

desired result : ['c','j'] 

だろう

関連する問題