python 对具有上限和下限的数据框进行缩放和评分

标签 python pandas scaling normalize

我有一个 df['values'] 列,我希望其得分介于 0 和 1 之间。该范围采用 2 个单独的上限和下限进行评分。

  • 下限/上限为 20/0
  • 下限/上限为 0/30

python上有这个操作的函数吗? minmaxscalar 不允许我设置上限和下限。

Input is df['values']
Desired output is df['score']

values   score(20/0)  score(0/30)
-5.1     1.00         0.00
3.6      0.82         0.12
6.6      0.67         0.22
9.0      0.55         0.30
21.0     0.00         0.70

最佳答案

您可以先缩放到低/高,然后剪辑:

df = pd.DataFrame({'values': [-5.1, 3.6, 6.6, 9, 21]})
MIN = 20
MAX = 0
df['values'].sub(MIN).div(MAX-MIN).clip(0, 1)

输出:

0    1.00
1    0.82
2    0.67
3    0.55
4    0.00
Name: values, dtype: float64

作为函数

def score(df, MIN, MAX):
    return (df['values']
              .sub(MIN)
              .div(MAX-MIN)
              .clip(0, 1)
              .rename(f'score({MIN},{MAX})')
            )

pd.concat([df,
           score(df, 20, 0),
           score(df, 0, 30)],
          axis=1)

输出:

   values  score(20,0)  score(0,30)
0    -5.1         1.00         0.00
1     3.6         0.82         0.12
2     6.6         0.67         0.22
3     9.0         0.55         0.30
4    21.0         0.00         0.70

关于python 对具有上限和下限的数据框进行缩放和评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69201980/

相关文章:

python - 如何进行训练测试分割,以便 Python 中的每个类都有足够的训练和测试数据?

javascript - 如何使用 JS 抓取一个显示其内容的网站?

python - 操作错误 : (2001, "Can' t 创建 UNIX 套接字 (24)")

python - 使用 psutil.Process.memory_info 内存使用情况与 Pandas.memory_usage 不同

r - 缩放 X 轴错误并需要帮助将 "%"符号添加到 ggplot R 中的 X 轴

android - 在 Android : can it be done? 中干净地缩小图像

android - 为 ldpi mdpi hdpi 和 xhdpi 缩放图像

python - 更喜欢字典中最大值的键?

python - 使用 if 和 break 创建 Python 列表理解

python - 按A列分组并按列聚合时获取列对应的值