前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pandas-4. Panel

Pandas-4. Panel

作者头像
悠扬前奏
发布2019-05-29 17:17:55
发布2019-05-29 17:17:55
96500
代码可运行
举报
运行总次数:0
代码可运行

Panel是Pandas中的3D数据容器。 它有3个轴(axis),分别是:

  • items - axis 0 , 每个item对应一个DataFrame
  • major_axis - axis 1,代表每个DataFrame的索引
  • minor_axis - axis 2, 代表每个DataFrame的列

1. 构造函数

用以下函数构造一个Panel:

代码语言:javascript
代码运行次数:0
运行
复制
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

2. 创建Panel

从warning信息可知,该方法已经废弃,建议用MultiIndex on a DataFrame来处理3D信息。

2.1 从3D ndarray创建

代码语言:javascript
代码运行次数:0
运行
复制
data  = np.random.rand(2,4,5)
print(pd.Panel(data))

结果

代码语言:javascript
代码运行次数:0
运行
复制
<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.2 从DataFrame对象的dict创建Panel

代码语言:javascript
代码运行次数:0
运行
复制
data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
        'Item2' : pd.DataFrame(np.random.randn(4, 2))}
print(pd.Panel(data))

结果:

代码语言:javascript
代码运行次数:0
运行
复制
<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

3. Panel中的数据处理

3.1 从Panel中读取数据

用items

代码语言:javascript
代码运行次数:0
运行
复制
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维。

代码语言:javascript
代码运行次数:0
运行
复制
          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)方法访问数据:

代码语言:javascript
代码运行次数:0
运行
复制
print(p.major_xs(1))

结果

代码语言:javascript
代码运行次数:0
运行
复制
      Item1     Item2
0 -1.529605  0.406339
1 -0.156281  0.826073
2 -0.572260       NaN

** 从Minor_axis维** 用panel.minor_xs()方法访问数据

代码语言:javascript
代码运行次数:0
运行
复制
print(p.minor_xs(p.minor_axis[0]))

结果

代码语言:javascript
代码运行次数:0
运行
复制
      Item1     Item2
0 -0.605993  0.711947
1 -1.529605  0.406339
2 -0.521251 -0.721333
3  1.261669 -0.807349
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.03.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 构造函数
  • 2. 创建Panel
    • 2.1 从3D ndarray创建
    • 2.2 从DataFrame对象的dict创建Panel
  • 3. Panel中的数据处理
    • 3.1 从Panel中读取数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档