Я пытаюсь масштабировать серию панд с помощью StandardScaler().fit_transform(). Однако вывод всегда представляет собой массив нулей.
Входная серия имеет длину 201, когда я делаю:
print values[:5]
Я получаю список поплавков, как показано ниже:
0 1943.0
1 508.0
2 1657.0
3 872.0
4 693.0
Когда я применяю скейлер:
X = preprocessing.StandardScaler().fit_transform(values)
print X
Выход:
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0.]]
Как я могу это исправить?
type(values)
это обычно происходит, если у вас есть фрейм данных с несколькими столбцами. - person elyase   schedule 13.09.2016values
- это DataFrame, а вы упоминаете, что уверены, что ваши данные являются pd.Series. Вы можете проверить, что вы передаете скейлеру, с помощьюtype(values)
. - person elyase   schedule 23.09.2016inpt = pd.Series(range(5));scaler.fit_transform(inpt.reshape(-1, 1))
, то он работает как надо. - person elyase   schedule 23.09.2016