AttributeError: у объекта 'Series' нет атрибута 'reshape' - PullRequest
0 голосов
/ 11 декабря 2018

Я использую Sci-Kit Learn алгоритм линейной регрессии.При масштабировании целевой функции Y с помощью:

Ys = scaler.fit_transform(Y)

Я получил

ValueError: Ожидаемый 2D-массив, вместо него получен 1D-массив:

После этого яизменил, используя:

Ys = scaler.fit_transform(Y.reshape(-1,1))

Но снова получил ошибку:

AttributeError: у объекта 'Series' нет атрибута 'reshape'

Поэтому я проверилСтраница документации pandas.Series и там написано:

изменить форму (* args, ** kwargs) устарело с версии 0.19.0.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Решение действительно заключается в следующем:

Y.values.reshape(-1,1)

Это извлекает пустой массив со значениями вашего объекта серии Панд, а затем преобразует его в двумерный массив.

Причина, по которой вам нужно это сделать, заключается в том, что объекты Серии Панд по своей природе являются одномерными.Другим решением, если вы хотите остаться в библиотеке панд, было бы преобразование Series в DataFrame, который затем был бы 2D:

Y = pd.Series([1,2,3,1,2,3,4,32,2,3,42,3])

scaler = StandardScaler()

Ys = scaler.fit_transform(pd.DataFrame(Y))
0 голосов
/ 11 декабря 2018

Решение было связано с измененным методом на странице документации .

Insted of Y.reshape(-1,1) вам необходимо использовать:

Y.values.reshape(-1,1)
...