我有一个熊猫数据框,其中的function r(e){return e}n.d(t,"a",(function(){return r}))
列的取值范围是0到10。我想重新映射此列以取的值取值范围是0到5。我该怎么做?
答案 0 :(得分:3)
在一般情况下,有许多sklearn
缩放功能可以在sklearn.preprocessing: Preprocessing and Normalization中进行此缩放或其他缩放。对于您的情况,可以使用MinMaxScaler
将系列重新缩放到指定范围:
说你有系列:
s = pd.Series(range(10))
您可以使用以下方法重新调整间隔[0,5]
:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 5))
scaler.fit_transform(s.values[:,None]).ravel()
array([0. , 0.55555556, 1.11111111, 1.66666667, 2.22222222,
2.77777778, 3.33333333, 3.88888889, 4.44444444, 5. ])
或者如果您想要整数值:
scaler.fit_transform(s.values[:,None]).ravel().astype(int)
# array([0, 0, 1, 1, 2, 2, 3, 3, 4, 5])