2016-05-25 4 views
0

データフレームの寸法を変更しながら、データフレームをパネルに変更する方法について質問があります。 もともと私は2000行と784 colmunsとデータフレームを持っている:データフレームのサイズ変更とパネルに変換python

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

私は28 * 28のデータフレームに各列をオンにして、サイズと構造のようなパネルにこれを保管したいと思います(2000,28 、28)または2000 28に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で28であることを希望します。

答えて

1

何が問題だと思われますか?これは動作します:

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 
関連する問題