1 简介
自 Pandas 0.25 版本后, Panel 结构已经被废弃。
pd.__version__ #查看pandas版本 #'1.2.4' #或者 pd.show_versions()
Panel 结构也称“面板结构”,源自于 Panel Data 一词,翻译为“面板数据”。
Panel 是三维数据结构,有三个轴,分别是:
- items(0 轴):axis =0,Panel 中的每个 items 都对应一个 DataFrame。
- major_axis(1 轴):axis=1,用来描述每个 DataFrame 的行索引。
- minor_axis(2 轴):axis=2,用来描述每个 DataFrame 的列索引。
2 创建Panel 对象
创建 Panel 对象有两种方式
- 使用 nadarry 数组创建,
- 使用 DataFrame 对象创建。
2.1 创建空的 Panel 对象
import pandas as pd p = pd.Panel() print(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
2.2 ndarray三维数组创建
import pandas as pd import numpy as np #返回均匀分布的随机样本值位于[0,1)之间 data = np.random.rand(2,4,5) p = pd.Panel(data) print (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.3 DataFrame创建
使用 DataFrame 创建一个 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)
输出结果:
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 Panel中选取数据
使用 Panel 的三个轴来实现,也就是 items
,major_axis
,minor_axis
。下面介绍其中一种:
3.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) print(p['Item1'])
输出结果:
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,包含了两个数据项,我们选择了 Item1,输出结果是 4 行 3 列的 DataFrame,其行、列索引分别对应 major_axis 和 minor_axis。