2013-06-24 8 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% की बाल्टी बनाने में दिलचस्पी है। ऊपर दिखाए गए उदाहरण में, इस लेबल युक्त [ 'सी', 'जे']

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

एक सूची होगा कैसे मैं वांछित परिणाम मिलता है

उत्तर

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'] 
संबंधित मुद्दे