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]是我的意思