天天看點

pandas 學習筆記--------panel

參考自:https://www.yiibai.com/pandas/python_pandas_panel.html

pandas 學習筆記--------panel

上圖可當成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
           

選擇項目時,直接用标簽選擇即可。

選擇主軸和次軸時,則需調用相應的方法。

選擇某一進制素時,直接選标簽即可。