Pandas基礎入門(4)Panel

學習彙總:點這裏

面板(Panel)是3D容器的數據。面板數據一詞來源於計量經濟學,部分源於名稱:Pandas - pan(el)-da(ta)-s。
3軸(axis)這個名稱旨在給出描述涉及面板數據的操作的一些語義。它們是 -

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

pandas.Panel()

可以使用以下構造函數創建面板 -

pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)

Python構造函數的參數如下 :

參數 描述
data 數據採取各種形式,如:ndarray,series,map,lists,dict,constant和另一個數據幀(DataFrame)
items axis=0
major_axis axis=1
minor_axis axis=2
dtype 每列的數據類型
copy 複製數據,默認 - false

創建面板

可以使用多種方式創建面板 :

  1. 從ndarrays創建
  2. 從DataFrames的dict創建

1.從3D ndarray創建

>>>import pandas as pd
>>>import numpy as np
>>>data = np.random.rand(2,4,5)
>>>p = pd.Panel(data)
>>>p
<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.從DataFrame對象的dict創建面板

>>>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)
>>>p
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 4 (major_axis) x 3 (minor_axis)
Items axis: Item1 to Item2
Major_axis axis: 0 to 3
Minor_axis axis: 0 to 2

3.創建一個空面板

>>>import pandas as pd
>>>p = pd.Panel()
>>>p
<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

從面板中選擇數據

要從面板中選擇數據,可以使用以下方式 :

  1. Items
  2. Major_axis
  3. Minor_axis

1.使用Items

>>>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)
>>>p['Item1']
          0         1         2
0  1.680050 -0.131174  2.062063
1 -1.876838  0.410399  0.575084
2  0.997676  0.630704 -1.150107
3 -1.571193 -2.038553 -1.372589

2.使用major_axis(可以使用panel.major_axis(index)方法訪問數據)。

>>>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)
>>>p.major_xs(1)
      Item1     Item2
0 -1.341500 -1.452453
1  0.592554  1.058616
2 -0.456414       NaN

3.使用minor_axis(可以使用panel.minor_axis(index)方法訪問數據)。

>>>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)
>>>p.minor_xs(1)
      Item1     Item2
0  0.314772  0.316735
1 -1.129884 -0.294042
2 -0.066124 -0.910311
3  0.470638 -0.427183
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章