为了账号安全,请及时绑定邮箱和手机立即绑定

Python 中的逆分数

Python 中的逆分数

精慕HU 2021-09-02 19:42:10
我有一个如下的数据框,import pandas as pddf = pd.DataFrame({'value': [54, 74, 71, 78, 12]})预期输出,value    score 54    scaled value 74    scaled value 71    scaled value 78     50.000 12     600.00我想为所有人分配 50 到 600 之间的分数,但最低值必须具有最高分数。你有想法吗?
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

这是我的想法。但我认为你的分数没有在你的问题中体现出来。


dfmin   = df.min()[0]

dfmax   = df.max()[0]

dfrange = dfmax - dfmin

score_value = (600-50)/dfrange

df.loc[:,'score'] = np.where(df['value'] == dfmin, 600, 

                             np.where(df.value == dfmax, 

                                      50, 

                                      600 - ((df.value - dfmin)* (1/score_value))))

df

产生:


   value   score

0     54  594.96

1     74  592.56

2     71  592.92

3     78   50.00

4     12  600.00

由于缺少比例,与您的输出不匹配。


查看完整回答
反对 回复 2021-09-02
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

不确定您想要实现什么,也许您可以为此输入提供确切的预期输出。但如果我理解得很好,也许你可以试试


import pandas as pd


df = pd.DataFrame({'value': [54, 74, 71, 78, 12]})

min = pd.DataFrame.min(df).value

max = pd.DataFrame.max(df).value


step = 550 / (max - min)

df['score'] = 600 - (df['value']-min) * step


print(df)

这将输出


   value       score

0     54  250.000000

1     74   83.333333

2     71  108.333333

3     78   50.000000

4     12  600.000000


查看完整回答
反对 回复 2021-09-02
  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信