数据框更改大小并转换为面板 python

dataframe change size and the convert to panel python

我对如何在更改数据框的尺寸时将数据框更改为面板有疑问。 最初我有一个包含 2000 行和 784 列的数据框:

data=pd.DataFrame(np.random.randn(2000,784))
data.shape
(2000, 784)

我想将每一列变成一个 28*28 的数据帧,然后将其存储到一个类似面板的结构中,大小为 (2000,28,28) 或 2000 28 x 28 数据帧。 看着一些answers,我试过:

data_panel=pd.Panel(dict([ (i,data) for i in range(2000)]))
data_panel
<class 'pandas.core.panel.Panel'>
Dimensions: 2000 (items) x 2000 (major_axis) x 784 (minor_axis)
Items axis: 0 to 1999
Major_axis axis: 0 to 1999
Minor_axis axis: 0 to 783

但这不是我想要的。项目轴是正确的,但我希望长轴和短轴是 28 x 28。

好像是什么问题?这有效:

import pandas as pd
import numpy as np

data = pd.DataFrame(np.random.randn(2000,784))

panel = pd.Panel(data.values.reshape(2000, 28, 28))

# In [49]: q.panel[42].shape
# Out[49]: (28, 28)

# In [51]: q.panel
# Out[51]:
# <class 'pandas.core.panel.Panel'>
# Dimensions: 2000 (items) x 28 (major_axis) x 28 (minor_axis)
# Items axis: 0 to 1999
# Major_axis axis: 0 to 27
# Minor_axis axis: 0 to 27