我有一個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[/span> 0.12[/span
6.6 0.67 0.22[/span].
9.0 0.55[/span> 0.30[/span
21.0 0.00 0.70
uj5u.com熱心網友回復:
你可以先擴展到低/高,然后再剪輯:
df = pd.DataFrame({' values': [-5. 1, 3.6, 6.6, 9, 21]})
MIN = 20
最大 = 0
df['values'].sub(MIN).div(MAX-MIN).clip(0,1)
輸出:
0 1.00
10.82
2 0.67[/span
3 0.55[/span
4 0.00
名稱: 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[/span> 0.12[/span
2 6.6 0.67[/span> 0.22[/span
3 9.0 0.55[/span> 0.30[/span
4 21.0 0.00 0.70
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/306645.html
標籤:
