Как выбрать столбец в DataFrame, чтобы он имел форму (n, 1) вместо (n,)? - PullRequest
0 голосов
/ 05 февраля 2019

Я разделяю два столбца фрейма данных для использования в качестве объектов и меток соответственно:

X = bmi_life_data['BMI']
y = bmi_life_data['Life expectancy']

Но я должен изменить форму полученного одномерного массива (с shape = (n,))к форме (n, 1), чтобы она была принята функцией regression.fit ():

X = X.values.reshape(len(X), 1)

В противном случае я получаю ошибку:

bmi_life_model = LinearRegression()
bmi_life_model.fit(X, y)

laos_life_exp = bmi_life_model.predict([[21.07931]])

>>>>
ValueError: Found arrays with inconsistent numbers of samples: [  1 163]
None

Я такжеможет измениться на месте при определении X, но это почти то же самое.Я считаю этот шаг изменения утомительным, поэтому я думаю, что должен быть лучший путь.Я пытался найти его, но все, что я нашел, было различие между матрицами и одномерными массивами, что было полезной информацией, но ответило на мой вопрос.

1 Ответ

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

Это должно работать:

X = bmi_life_data[['BMI']]
y = bmi_life_data[['Life expectancy']]
...