猿问

Python 中的逆分数

我有一个如下的数据框,


import pandas as pd


df = 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 之间的分数,但最低值必须具有最高分数。你有想法吗?


精慕HU
浏览 175回答 2
2回答

米脂

这是我的想法。但我认为你的分数没有在你的问题中体现出来。dfmin   = df.min()[0]dfmax   = df.max()[0]dfrange = dfmax - dfminscore_value = (600-50)/dfrangedf.loc[:,'score'] = np.where(df['value'] == dfmin, 600,                              np.where(df.value == dfmax,                                       50,                                       600 - ((df.value - dfmin)* (1/score_value))))df产生:   value   score0     54  594.961     74  592.562     71  592.923     78   50.004     12  600.00由于缺少比例,与您的输出不匹配。

慕虎7371278

不确定您想要实现什么,也许您可以为此输入提供确切的预期输出。但如果我理解得很好,也许你可以试试import pandas as pddf = pd.DataFrame({'value': [54, 74, 71, 78, 12]})min = pd.DataFrame.min(df).valuemax = pd.DataFrame.max(df).valuestep = 550 / (max - min)df['score'] = 600 - (df['value']-min) * stepprint(df)这将输出   value       score0     54  250.0000001     74   83.3333332     71  108.3333333     78   50.0000004     12  600.000000
随时随地看视频慕课网APP

相关分类

Python
我要回答