Panel 結(jié)構(gòu)也稱(chēng)“面板結(jié)構(gòu)”,它源自于 Panel Data 一詞,翻譯為“面板數(shù)據(jù)”。如果您使用的是 Pandas 0.25 以前的版本,那么您需要掌握本節(jié)內(nèi)容,否則,作為了解內(nèi)容即可。
自 Pandas 0.25 版本后, Panel 結(jié)構(gòu)已經(jīng)被廢棄。
Panel 是一個(gè)用來(lái)承載數(shù)據(jù)的三維數(shù)據(jù)結(jié)構(gòu),它有三個(gè)軸,分別是 items(0 軸),major_axis(1 軸),而 minor_axis(2 軸)。這三個(gè)軸為描述、操作 Panel 提供了支持,其作用介紹如下:
您可以使用下列構(gòu)造函數(shù)創(chuàng)建一個(gè) Panel,如下所示:
?pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)
?
參數(shù)說(shuō)明如下:
參數(shù)名稱(chēng) | 描述說(shuō)明 |
---|---|
data | 輸入數(shù)據(jù),可以是 ndarray,Series,列表,字典,或者 DataFrame。 |
items | axis=0 |
major_axis | axis=1 |
minor_axis | axis=2 |
dtype | 每一列的數(shù)據(jù)類(lèi)型。 |
copy | 默認(rèn)為 False,表示是否復(fù)制數(shù)據(jù)。 |
下面介紹創(chuàng)建 Panel 對(duì)象的兩種方式:一種是使用 nadarry 數(shù)組創(chuàng)建,另一種使用 DataFrame 對(duì)象創(chuàng)建。首先,我們學(xué)習(xí)如何創(chuàng)建一個(gè)空的 Panel 對(duì)象。
使用 Panel 的構(gòu)造函數(shù)創(chuàng)建,如下所示:
import pandas as pd
p = pd.Panel()
print(p)
輸出結(jié)果:
<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
import pandas as pd
import numpy as np
#返回均勻分布的隨機(jī)樣本值位于[0,1)之間
data = np.random.rand(2,4,5)
p = pd.Panel(data)
print (p)
輸出結(jié)果:
<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
請(qǐng)注意與上述示例的空 Panel 進(jìn)行對(duì)比。
下面使用 DataFrame 創(chuàng)建一個(gè) 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)
輸出結(jié)果:
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
如果想要從 Panel 對(duì)象中選取數(shù)據(jù),可以使用 Panel 的三個(gè)軸來(lái)實(shí)現(xiàn),也就是items,major_axis,minor_axis。下面介紹其中一種,大家體驗(yàn)一下即可。
示例如下:
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'])
輸出結(jié)果:
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
上述示例中 data,包含了兩個(gè)數(shù)據(jù)項(xiàng),我們選擇了 item1,輸出結(jié)果是 4 行 3 列的 DataFrame,其行、列索引分別對(duì)應(yīng) major_axis 和 minor_axis。
更多建議: