python對具有上限和下限的數據幀進行縮放和評分

我有一個df['values']列,我想在0到1之間打分。該范圍分為兩個獨立的上限和下限。

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

python上是否有用于此操作的函數?minmaxscalar不允許我設置上限和下限。

輸入為df['values']所需輸出為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)

Output:

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)

Output:

   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
主站蜘蛛池模板: 久久久精品人妻一区二区三区 | 亚洲区精品久久一区二区三区| 亚洲国产成人精品无码一区二区| 波多野结衣一区二区三区| 国产精品亚洲不卡一区二区三区 | 久久精品成人一区二区三区| 亚洲国产精品乱码一区二区| 亚洲国产精品一区二区九九| 在线观看视频一区二区| 亚洲男女一区二区三区| 青青青国产精品一区二区| 日韩精品无码一区二区三区AV | 亚洲天堂一区在线| 国产精品无码一区二区三级| 中文字幕在线视频一区| 一区二区三区四区无限乱码 | 色噜噜一区二区三区| 日韩精品一区二区三区中文版| 亚洲国产激情在线一区| 亚洲福利一区二区三区| 影音先锋中文无码一区| 亚洲熟女综合色一区二区三区 | 亚洲欧美日韩中文字幕一区二区三区| 久久精品视频一区二区三区| 日韩一区二区电影| 久久精品一区二区| 亚洲一区综合在线播放| 亚洲福利秒拍一区二区| 波多野结衣一区视频在线 | 国产丝袜视频一区二区三区| 99精品国产一区二区三区| 99久久精品国产免看国产一区| 国产高清一区二区三区四区| 国产一区二区三区高清视频| 日本一区二区不卡视频| 亚洲av乱码一区二区三区香蕉| 亚洲国产一区二区三区在线观看| 亚洲国产一区二区三区在线观看| 无码人妻aⅴ一区二区三区有奶水 人妻夜夜爽天天爽一区 | 亚洲福利电影一区二区?| 成人精品一区二区激情|