參考自:https://www.yiibai.com/pandas/python_pandas_panel.html
上圖可當成panel,即Series為一維,dataframe為二維,panel為三維。
可用以下函數構造panel
pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)
其中,data為資料。可通過多種方式構造。
items相當于上圖中的分類标簽。在item确定之後,就可以将其看作dataframe
Major_axis即為dataframe中的index。
Minor_axis為dataframe中的columns。
1,建立一個空面闆,此處不多說
2,通過字典dataframe建立面闆:
一開始試了字典系列,發現會報錯,是以又采用了字典dataframe的方式。字典鍵即為item,裡面的index和columns分别為主軸和次軸。
import pandas as pd
d = {"one": pd.DataFrame([1, 2, 3],index=["a","b","c"], columns=["hh"])}
df = pd.Panel(d)
print (df)
<class 'pandas.core.panel.Panel'>
Dimensions: 1 (items) x 3 (major_axis) x 1 (minor_axis)
Items axis: one to one
Major_axis axis: a to c
Minor_axis axis: hh to hh
3,通過3維數組建立面闆:
import pandas as pd
import numpy as np
df = pd.Panel(np.random.rand(2,3,4))
print (df)
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major_axis) x 4 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 0 to 2
Minor_axis axis: 0 to 3
建立的三維數組,分别對應相應的item,主軸和次軸。
功能:
import pandas as pd
import numpy as np
df = pd.Panel(np.random.rand(2,3,4),
items=["aa","bb"],major_axis=["a","b","c"],minor_axis=["q","w","e","f"])
print (df)
print("選擇項目",df["aa"])
print("選擇主軸",df.major_xs("b"))
print("選擇次軸",df.minor_xs("q"))
print("選擇某元素",df["aa","b","q"])
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major_axis) x 4 (minor_axis)
Items axis: aa to bb
Major_axis axis: a to c
Minor_axis axis: q to f
選擇項目 q w e f
a 0.488587 0.855737 0.032916 0.106395
b 0.950385 0.251045 0.051626 0.427011
c 0.271140 0.774883 0.066487 0.129807
選擇主軸 aa bb
q 0.950385 0.235801
w 0.251045 0.353422
e 0.051626 0.595372
f 0.427011 0.314126
選擇次軸 aa bb
a 0.488587 0.695660
b 0.950385 0.235801
c 0.271140 0.757256
選擇某元素 0.9503852814428109
選擇項目時,直接用标簽選擇即可。
選擇主軸和次軸時,則需調用相應的方法。
選擇某一進制素時,直接選标簽即可。