Python 按前N%分类数据

Python 按前N%分类数据,python,pandas,Python,Pandas,我有一个熊猫系列(作为更大数据帧的一部分),如下所示: 0 7416 1 10630 2 7086 3 2091 4 3995 5 1304 6 519 7 1262 8 3676 9 2371 10 5346 11 912 12 3653 13 1093 14 2986 15 295

我有一个熊猫系列(作为更大数据帧的一部分),如下所示:

0        7416
1       10630
2        7086
3        2091
4        3995
5        1304
6         519
7        1262
8        3676
9        2371
10       5346
11        912
12       3653
13       1093
14       2986
15       2951
16      11859
我想根据以下分位数对行进行分组:

Top 0-5%
Top 6-10%
Top 11-25%
Top 26-50%
Top 51-75%
Top 76-100%

首先,我开始对数据使用
pd.rank()
,然后我计划使用
pd.cut()
将数据剪切到存储箱中,但它似乎不接受顶部的N%,而是接受显式的存储箱边缘。在pandas中是否有一种简单的方法可以做到这一点,或者我是否需要创建一个lambda/apply函数来计算每个排名项目应该放在哪个箱子中。

这是您的想法吗

pd.qcut(data, [0.05, 0.1, 0.25, 0.5, 0.75, 1])

略加修改的版本:

pd.qcut(数据[0,0.05,0.1,0.25,0.5,0.75,1])


否则,如果数据集低于0.05(5%),则会给出NaN值。

不太可能。当我把这个应用到我的数据集中时,它说在前0-5%的百分位数中有419个帖子,而实际上在我的1674个样本的数据集中,前5%中应该只有84个样本,如果你颠倒数组中的顺序会怎么样?[0.25,0.5,0.75,0.9,0.95,1]是我的意思