我想把一个专栏分成十进制,从50个中指定点数。
最低的十分位数得到5点,点以5点的增量增加。
在下面,我可以把我的专栏分成十进制。我如何分配分数,以便最低的十分位数有5分,第二最低的地方有10分,所以在..and,最高的十分位数有50分。
df = pd.DataFrame({'column'[1,2,2,3,4,4,5,6,6,7,7,8,8,9,10,10,10,12,13,14,16,16,16,18,19,20,20,22,24,28]})
df['decile'] = pd.qcut(df['column'], 10, labels = False)```发布于 2022-07-13 19:45:16
试试这个:
df['points'] = df['decile'].add(1).mul(5)输出:
column decile points
0 1 0 5
1 2 0 5
2 2 0 5
3 3 1 10
4 4 1 10
5 4 1 10
6 5 2 15
7 6 2 15
8 6 2 15
9 7 3 20
10 7 3 20
11 8 3 20
12 8 3 20
13 9 4 25
14 10 4 25
15 10 4 25
16 10 4 25
17 12 5 30
18 13 6 35
19 14 6 35
20 16 6 35
21 16 6 35
22 16 6 35
23 18 7 40
24 19 8 45
25 20 8 45
26 20 8 45
27 22 9 50
28 24 9 50
29 28 9 50发布于 2022-07-13 19:44:41
很简单;您可以直接在列之间应用操作。十进制的编号从0到9,所以它们是自然有序的。你想要每十分位数增加5点,所以乘以5会给你这个结果。因为你想从5开始,你可以用一个简单的和来抵消。以下是我认为你想要的东西:
df['points'] = df['decile'] * 5 + 5
https://stackoverflow.com/questions/72971755
复制相似问题