熊猫:我如何根据具体值分配组号?

时间:2018-04-17 12:59:34

标签: pandas

数据帧

    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}}

中实现它

需要你的帮助

3 个答案:

答案 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