一、什么是Panel
- Series:包含一维索引的一组数据
- DataFrame:包含index和columns两个轴
- Panel(面板):一种三维数据容器
一个Panel对象由3个轴构成:
- items-------->axis=0:每个项目对应于内部包含的DataFrame
- major_axis--->axis=1:每个DataFrame的索引(行)
- minor_axis--->axis=2:每个DataFrame的列
二、Panel的创建
pd.Panel(data,items,major_axis,minor_axis,dtype,copy)
参数 | 说明 |
data | 数据采取各种形式,如:ndarray、Series、列表、字典和另外一个DataFrame |
items | 每个项目对应于内部包含的DataFrame |
major_axis | 每个DataFrame的索引(行) |
minor_axis | 每个DataFrame的列 |
dtype | 每列的数据类型 |
copy | 复制数据,默认值为False |
>>> pnl = pd.Panel([[[10000,20000],[20000,30000],[40000,50000]],[[2,1],[0,0],[3,4]]], items=['营业额','出差次数'],major_axis=['Jan','Feb','Mar'],minor_axis=['Mary','Jack']) >>> pnl <class 'pandas.core.panel.Panel'> Dimensions: 2 (items) x 3 (major_axis) x 2 (minor_axis) Items axis: 营业额 to 出差次数 Major_axis axis: Jan to Mar Minor_axis axis: Mary to Jack >>> pnl['营业额'] Mary Jack Jan 10000 20000 Feb 20000 30000 Mar 40000 50000 >>> type(pnl['营业额']) <class 'pandas.core.frame.DataFrame'>
三、Panel的转换
通过to_frame()将Panel转转成一个“堆积式”的DataFrame(stacked DataFrame),此时Paenl的形式与索引都将方便许多。
>>> pnl.to_frame() 营业额 出差次数 major minor Jan Mary 10000 2 Jack 20000 1 Feb Mary 20000 0 Jack 30000 0 Mar Mary 40000 3 Jack 50000 4