У меня есть 2D-кадр данных с формой (16422,28) следующим образом:
df=
id var0 var1 var2 var3 var4 ... var27
5171 10.0 2.8 0.0 5.0 1.0 ... 9.4
5171 40.9 2.5 3.4 4.5 1.3 ... 7.7
5171 60.7 3.1 5.2 6.6 3.4 ... 1.0
...
5171 0.5 1.3 5.1 0.5 0.2 ... 0.4
4567 1.5 2.0 1.0 4.5 0.1 ... 0.4
4567 4.4 2.0 1.3 6.4 0.1 ... 3.3
4567 6.3 3.0 1.5 7.6 1.6 ... 1.6
...
4567 0.7 1.4 1.4 0.3 4.2 ... 1.7
...
9584 0.3 2.6 0.0 5.2 1.6 ... 9.7
9584 0.5 1.2 8.3 3.4 1.3 ... 1.7
9584 0.7 3.0 5.6 6.6 3.0 ... 1.0
...
9584 0.7 1.3 0.1 0.0 2.0 ... 1.7
Мне нужно преобразовать его в 3D-кадр данных формы (16422,28,1). Следующее даст мне 3D ndarray:
values_3d = df.values.reshape(df.shape[0], df.shape[1], 1)
Я пытался использовать pd.Panel () для преобразования этого ndarray в 3d-фрейм данных:
tmp = pd.Panel(values_3d, major_axis=df.index, minor_axis=df.columns)
, но жалуется, что TypeError: Panel() takes no argument
. Затем я попытался создать трехмерный фрейм данных с многоуровневым индексом следующим образом:
tmp = pd.DataFrame(values_3d, columns=df.columns
, index=pd.MultiIndex.from_product(np.arange(start=0, stop=values_3d.shape[0]), df.index))
, и это выдает мне такую ошибку: TypeError: Input must be list-like
Как я могу изменить эту форму?