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
主站蜘蛛池模板: 一本大道在线无码一区| 精品一区二区三区在线观看l | 国产精品一区三区| 91精品一区二区综合在线| 成人毛片无码一区二区| 亚洲爆乳精品无码一区二区三区| 国产视频一区在线播放| 无码中文字幕一区二区三区| 久久久精品一区二区三区 | 久久无码人妻一区二区三区| 一区二区三区免费在线视频| 精品无码人妻一区二区三区18| 人妻少妇久久中文字幕一区二区| 亚洲日本一区二区三区在线不卡| 精品91一区二区三区| 波多野结衣电影区一区二区三区| 亚洲欧美日韩中文字幕在线一区| 国产精品一区在线播放| 97精品国产一区二区三区| 亚欧在线精品免费观看一区| 搡老熟女老女人一区二区| 国产成人AV一区二区三区无码| 国产高清不卡一区二区| 香蕉久久一区二区不卡无毒影院| 性无码一区二区三区在线观看| 亚洲一区综合在线播放| 蜜桃无码一区二区三区| 国产精品一区二区久久精品涩爱| 亚洲AV成人一区二区三区观看 | 青娱乐国产官网极品一区| 激情啪啪精品一区二区| 一区二区三区在线观看视频| 成人一区二区免费视频| 日本成人一区二区三区| 影音先锋中文无码一区| 国产精品成人一区二区三区| 久久se精品一区二区影院| 日韩一区二区三区无码影院| 亚洲日韩AV一区二区三区四区| 国产精品无码一区二区三区免费| 中文字幕一区二区三区精华液 |