数据框
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
Run Code Online (Sandbox Code Playgroud)
预期结果:
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
Run Code Online (Sandbox Code Playgroud)
我想要做的是根据其值分配组号,从 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
Run Code Online (Sandbox Code Playgroud)