Вариант 1
sklearn
Вы видите эту проблему снова и снова, ошибка действительно должна указывать на то, что вам нужно сделать. Вы в основном пропускаете лишнее измерение на входе. Измените df["TOTAL"]
на df[["TOTAL"]]
.
df['SIZE'] = scaler.fit_transform(df[["TOTAL"]])
df
TOTAL Name SIZE
0 3232 Jane 24.413959
1 382 Jack 10.000000
2 8291 Jones 50.000000
Вариант 2
pandas
Желательно, чтобы я обходил склеарн и сам выполнял минимальное-максимальное масштабирование.
a, b = 10, 50
x, y = df.TOTAL.min(), df.TOTAL.max()
df['SIZE'] = (df.TOTAL - x) / (y - x) * (b - a) + a
df
TOTAL Name SIZE
0 3232 Jane 24.413959
1 382 Jack 10.000000
2 8291 Jones 50.000000
Это, по сути, то, что делает скейлер min-max, но без дополнительных затрат на импорт scikit learn (не делайте этого, если не нужно, это тяжелая библиотека).