与pd.Series和pd.DataFrame类似,pd.Panel是pandas的数据容器之一,它是用来处理具有三个维度的数据的。进而pd.Panel有3个轴(axis),分别是:
- items - axis 0 , 每个item对应一个DataFrame
- major_axis - axis 1,代表每个DataFrame的索引
- minor_axis - axis 2, 代表每个DataFrame的列
以某个金融数据集stkpoolClose为例,该panel的数据包如下
<class 'pandas.core.panel.Panel'>
Dimensions: 4 (items) x 240 (major_axis) x 1 (minor_axis)
Items axis: 002024.SZ to 601318.SH
Major_axis axis: 20121225 09:40:00 to 20130104 09:35:00
Minor_axis axis: close to close
其中,items为四种股票,major_axis实际为日期,minor_axis为行情类型。
以stkpoolClose['601318.SH']访问该数据包,得到结果如下
close
20121225 09:40:00 17.229671
20121225 09:45:00 17.213188
20121225 09:50:00 17.254397
... ...
20121231 14:55:00 18.696728
20121231 15:00:00 18.663760
20130104 09:35:00 20.423404
[240 rows x 1 columns]
以stkpoolClose.minor_xs('close')访问该数据包,得到结果如下
002024.SZ 600000.SH 601166.SH 601318.SH
20121225 09:40:00 6.119077 4.446197 7.194377 17.229671
20121225 09:45:00 6.109531 4.441295 7.180399 17.213188
20121225 09:50:00 6.138169 4.451099 7.199037 17.254397
... ... ... ... ...
20121231 14:55:00 6.338638 4.828560 7.767505 18.696728
20121231 15:00:00 6.348184 4.862875 7.776824 18.663760
20130104 09:35:00 6.376823 4.995232 8.000483 20.423404
[240 rows x 4 columns]
以stkpoolClose.major_xs('20121225 10:00:00')访问该数据包,得到结果如下
002024.SZ 600000.SH 601166.SH 601318.SH
close 6.166808 4.465806 7.217675 17.217308
总结,以items访问panel数据,得到的结果是以major_xs为index,minor_xs为columns的DataFrame;以major_xs访问数据,得到的结果是以items为columns,以minor_xs为index的DataFrame;以minor_xs访问数据,得到的结果是以items为columns,以major_xs为index的DataFrame