При попытке сформировать DataFrame из данных исходной таблицы и данных линейной регрессии возникает ошибка ValueError: Must pass 2-d input
>>> y_test.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 2 entries, 8 to 1
Data columns (total 1 columns):
Column Non-Null Count Dtype
--- ------ -------------- -----
0 траты в след месяце 2 non-null int64
dtypes: int64(1)
memory usage: 32.0 bytes
>>> lr.predict(x_test)
array([[ 3026.89193341],
[29612.82254142]])
>>> pd.DataFrame([y_test.values, lr.predict(x_test)]).T
ValueError Traceback (most recent call
last) <ipython-input-47-4b91b6b79c58> in <module>()
----> 1 pd.DataFrame([y_test.values, lr.predict(x_test)]).T
2 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/internals/construction.py
in _prep_ndarray(values, copy)
322 values = values.reshape((values.shape[0], 1))
323 elif values.ndim != 2:
--> 324 raise ValueError(f"Must pass 2-d input. shape={values.shape}")
325
326 return values
ValueError: Must pass 2-d input. shape=(2, 2, 1)
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Воспроизведение ошибки:
In [93]: y_test
Out[93]:
y
0 1
1 2
In [94]: pred
Out[94]:
array([[ 3026.89193341],
[29612.82254142]])
In [95]: pd.DataFrame([y_test.values, pred]).T
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
...
ValueError: Must pass 2-d input. shape=(2, 2, 1)
Решение - преобразуйте данные для итоговых столбцов в 1D векторы:
In [96]: pd.DataFrame({"test":y_test.to_numpy().ravel(), "pred":pred.ravel()})
Out[96]:
test pred
0 1 3026.891933
1 2 29612.822541