Pandas | 04 Panel 面板

面板(Panel)是3D容器的數據。面板數據一詞來源於計量經濟學,部分源於名稱:Pandas - pan(el)-da(ta)-spython

3軸(axis)這個名稱旨在給出描述涉及面板數據的操做的一些語義。它們是 -shell

  • items - axis 0,每一個項目對應於內部包含的數據幀(DataFrame)。
  • major_axis - axis 1,它是每一個數據幀(DataFrame)的索引(行)。
  • minor_axis - axis 2,它是每一個數據幀(DataFrame)的列。

1. pandas.Panel()

能夠使用如下構造函數建立面板 -dom

 
pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)
 
 
參數 描述
data 數據採起各類形式,如:ndarrayseriesmaplistsdictconstant和另外一個數據幀(DataFrame)
items axis=0
major_axis axis=1
minor_axis axis=2
dtype 每列的數據類型
copy 複製數據,默認 - false

2. 建立面板

能夠使用多種方式建立面板 -函數

  • 從ndarrays建立
  • 從DataFrames的dict建立

2.1 從3D ndarray建立

# creating an empty panel
import pandas as pd
import numpy as np

data = np.random.rand(2,4,5)
p = pd.Panel(data)
print p

輸出結果:spa

<class 'pandas.core.panel.Panel'> Dimensions: 2 (items) x 4 (major_axis) x 5 (minor_axis) Items axis: 0 to 1 Major_axis axis: 0 to 3 Minor_axis axis: 0 to 4

注意 - 觀察空面板和上面板的尺寸大小,全部對象都不一樣。3d

2.2 從DataFrame對象的dict建立面板

#creating an empty panel
import pandas as pd
import numpy as np

data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
        'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p

輸出結果:code

<class 'pandas.core.panel.Panel'> Dimensions: 2 (items) x 4 (major_axis) x 5 (minor_axis) Items axis: 0 to 1 Major_axis axis: 0 to 3 Minor_axis axis: 0 to 4
 

2.3 建立一個空面板

能夠使用Panel的構造函數建立一個空面板,以下所示:對象

#creating an empty panel
import pandas as pd

p = pd.Panel()
print p

輸出結果:blog

<class 'pandas.core.panel.Panel'> Dimensions: 0 (items) x 0 (major_axis) x 0 (minor_axis) Items axis: None Major_axis axis: None Minor_axis axis: None
 

3. 從面板中選擇數據

要從面板中選擇數據,能夠使用如下方式 -索引

  • Items
  • Major_axis
  • Minor_axis

使用Items

# creating an empty panel
import pandas as pd
import numpy as np

data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
        'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p['Item1']
輸出結果 -
0 1 2 0 0.488224 -0.128637 0.930817 1 0.417497 0.896681 0.576657 2 -2.775266 0.571668 0.290082 3 -0.400538 -0.144234 1.110535
 

上面示例有兩個數據項,這裏只檢索item1。結果是具備4行和3列的數據幀(DataFrame),它們是Major_axisMinor_axis維。

使用major_axis

能夠使用panel.major_axis(index)方法訪問數據。參考如下示例代碼 -

# creating an empty panel
import pandas as pd
import numpy as np

data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
        'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p.major_xs(1)

輸出結果:

Item1 Item2 0 0.417497 0.748412 1 0.896681 -0.557322 2 0.576657 NaN
 

使用minor_axis

能夠使用panel.minor_axis(index)方法訪問數據。參考如下示例代碼 -

# creating an empty panel
import pandas as pd
import numpy as np

data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
        'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p.minor_xs(1)

輸出結果:

Item1 Item2 0 -0.128637 -1.047032 1 0.896681 -0.557322 2 0.571668 0.431953 3 -0.144234 1.302466

注意 - 觀察尺寸大不的變化。

相關文章
相關標籤/搜索