學習彙總:點這裏
面板(Panel)是3D容器的數據。面板數據一詞來源於計量經濟學,部分源於名稱:Pandas - pan(el)-da(ta)-s。
3軸(axis)這個名稱旨在給出描述涉及面板數據的操作的一些語義。它們是 -
- items - axis 0,每個項目對應於內部包含的數據幀(DataFrame)。
- major_axis - axis 1,它是每個數據幀(DataFrame)的索引(行)。
- 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 |
創建面板
可以使用多種方式創建面板 :
- 從ndarrays創建
- 從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
從面板中選擇數據
要從面板中選擇數據,可以使用以下方式 :
- Items
- Major_axis
- 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