Pandas Panel結(jié)構(gòu)

2022-07-13 10:19 更新

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 提供了支持,其作用介紹如下:

  • items:axis =0,Panel 中的每個(gè) items 都對(duì)應(yīng)一個(gè) DataFrame。
  • major_axis:axis=1,用來(lái)描述每個(gè) DataFrame 的行索引。
  • minor_axis:axis=2,用來(lái)描述每個(gè) DataFrame 的列索引。

pandas.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ì)象

下面介紹創(chuàng)建 Panel 對(duì)象的兩種方式:一種是使用 nadarry 數(shù)組創(chuàng)建,另一種使用 DataFrame 對(duì)象創(chuàng)建。首先,我們學(xué)習(xí)如何創(chuàng)建一個(gè)空的 Panel 對(duì)象。

1) 創(chuàng)建一個(gè)空Panel

使用 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

2) ndarray三維數(shù)組創(chuàng)建

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ì)比。

3) DataFrame創(chuàng)建

下面使用 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中選取數(shù)據(jù)

如果想要從 Panel 對(duì)象中選取數(shù)據(jù),可以使用 Panel 的三個(gè)軸來(lái)實(shí)現(xiàn),也就是itemsmajor_axis,minor_axis。下面介紹其中一種,大家體驗(yàn)一下即可。

1) 使用 items選取數(shù)據(jù)

示例如下:

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。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)