数据帧
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
预期结果:
Pandas
我想要做的是根据其值分配1到9的组号。
我们的想法是对这些值进行排序并将它们分成10组,并为每组分配1到9个。
但不知道如何在{{1}}
中实现它需要你的帮助
答案 0 :(得分:4)
对于大小均匀的垃圾箱,我认为需要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
答案 1 :(得分:1)
如果你想创建2个组,你可以使用它:
df['b'] = df['a'].floordiv(2)+1
答案 2 :(得分:1)
您可以使用//
df['G']=df.a//2+1
df
Out[609]:
a G
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