Panel是Pandas中的3D数据容器
它有3个轴(axis),分别是:
用以下函数构造一个Panel:
pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)
参数 | 描述 |
---|---|
data | 数据,可以采用各种格式:ndarray, series,map,list,dict,constant和另一个DataFrame |
items | axis = 0 |
major_axis | axis = 1 |
minor_axis | axis = 2 |
dtype | 每列的数据类型 |
copy | 复制数据,默认 - false |
从warning信息可知,该方法已经废弃,建议用MultiIndex on a DataFrame来处理3D信息。
data = np.random.rand(2,4,5)
print(pd.Panel(data))
结果
<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
data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)),
'Item2' : pd.DataFrame(np.random.randn(4, 2))}
print(pd.Panel(data))
结果:
<class 'pandas.core.panel.Panel'>
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
用items
data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)),
'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print(p["Item1"])
结果是具有4行和3列的DataFrame,是原Panel的Major_axis和Minor_axis维。
0 1 2
0 -0.605993 -1.160744 0.107200
1 -1.529605 -0.156281 -0.572260
2 -0.521251 -0.084024 -0.094236
3 1.261669 -1.397361 0.843103
从Major_axis维
用panel.major_xs(index)方法访问数据:
print(p.major_xs(1))
结果:
Item1 Item2
0 -1.529605 0.406339
1 -0.156281 0.826073
2 -0.572260 NaN
从Minor_axis维
用panel.minor_xs()方法访问数据
print(p.minor_xs(p.minor_axis[0]))
结果:
Item1 Item2
0 -0.605993 0.711947
1 -1.529605 0.406339
2 -0.521251 -0.721333
3 1.261669 -0.807349
原文链接:Pandas-4. Panel