将熊猫列映射到新范围

时间:2020-05-21 08:06:33

标签: python pandas dataframe

我有一个熊猫数据框,其中的function r(e){return e}n.d(t,"a",(function(){return r}))列的取值范围是0到10。我想重新映射此列以取的值取值范围是0到5。我该怎么做?

1 个答案:

答案 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])