我试图根据其值在百分位桶中对我的数据进行分类.我的数据看起来像,
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
Run Code Online (Sandbox Code Playgroud)
为了对这些数据进行排名,我使用的是排名功能.但是,我有兴趣创造一个前20%的桶.在上面显示的示例中,这将是包含标签['c','j']的列表
desired result : ['c','j']
Run Code Online (Sandbox Code Playgroud)
我如何获得所需的结果
Dan*_*lan 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']
Run Code Online (Sandbox Code Playgroud)