首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的十进制

Python中的十进制
EN

Stack Overflow用户
提问于 2022-07-13 19:39:47
回答 2查看 95关注 0票数 0

我想把一个专栏分成十进制,从50个中指定点数。

最低的十分位数得到5点,点以5点的增量增加。

在下面,我可以把我的专栏分成十进制。我如何分配分数,以便最低的十分位数有5分,第二最低的地方有10分,所以在..and,最高的十分位数有50分。

代码语言:javascript
复制
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)```
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-13 19:45:16

试试这个:

代码语言:javascript
复制
df['points'] = df['decile'].add(1).mul(5)

输出:

代码语言:javascript
复制
    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
票数 1
EN

Stack Overflow用户

发布于 2022-07-13 19:44:41

很简单;您可以直接在列之间应用操作。十进制的编号从0到9,所以它们是自然有序的。你想要每十分位数增加5点,所以乘以5会给你这个结果。因为你想从5开始,你可以用一个简单的和来抵消。以下是我认为你想要的东西:

df['points'] = df['decile'] * 5 + 5

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72971755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档