При попытке сформировать 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
→ Ссылка