按大前N%分类大熊猫数据

时间:2015-12-09 16:47:14

标签: 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       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%,而是接受显式bin边缘。有没有一种简单的方法在pandas中执行此操作,或者我是否需要创建一个lambda / apply函数来计算每个排序项应放在哪个bin中。

2 个答案:

答案 0 :(得分:9)

这是你的想法吗?

    select a.*, b.start_date, b.end_date, c.value_text
    from 
    val_tb a
    left join 
    record_tb b on a.record_id = b.record_id

答案 1 :(得分:0)

略有修改版本:

  

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

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