pandas :如何根据特定值分配组号? [英] Pandas : How can I assign group number according to specific value?

查看:57
本文介绍了 pandas :如何根据特定值分配组号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

DataFrame

DataFrame

pd.DataFrame({'a': range(20)})

>>  
    a
0   0
1   1
2   2
3   3
4   4
5   5
6   6
7   7
8   8
9   9
10  10
11  11
12  12
13  13
14  14
15  15
16  16
17  17
18  18
19  19

预期结果:

    a   group_num
0   0   1
1   1   1
2   2   2
3   3   2
4   4   3
5   5   3
6   6   4
7   7   4
8   8   5
9   9   5
10  10  6
11  11  6
12  12  7
13  13  7
14  14  8
15  15  8
16  16  9
17  17  9
18  18  10
19  19  10

我要执行的操作是根据其值从1到9分配组号.

What I want to do is to assign group number, from 1 to 9, according to its value.

这个想法是对这些值进行排序并将它们分为10组,并从1到9分配给每个组.

The idea is to sort these values and split them into 10 groups and assign from 1 to 9 to each group.

但是不知道如何在Pandas

需要您的帮助

推荐答案

我认为需要 qcut 用于大小均匀的垃圾箱:

I believe need qcut for evenly sized bins:

df['b'] = pd.qcut(df['a'], 10, labels=range(1, 11))
print (df)
     a   b
0    0   1
1    1   1
2    2   2
3    3   2
4    4   3
5    5   3
6    6   4
7    7   4
8    8   5
9    9   5
10  10   6
11  11   6
12  12   7
13  13   7
14  14   8
15  15   8
16  16   9
17  17   9
18  18  10
19  19  10

这篇关于 pandas :如何根据特定值分配组号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆