数据框
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。
我们的想法是对这些值进行排序,并将它们分为 10 组,并为每组分配 1 到 9。
但不知道如何在 Pandas
中实现它
需要你的帮助
最佳答案
我相信需要qcut
对于大小均匀的垃圾箱:
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 : How can I assign group number according to specific value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49878841/