首页 > 其他分享 >【4.0】Pandas Panel三维数据结构

【4.0】Pandas Panel三维数据结构

时间:2023-09-24 16:56:19浏览次数:36  
标签:major 4.0 items DataFrame pd Panel Pandas axis

【一】三维数据结构

  • Panel 结构也称“面板结构”,它源自于 Panel Data 一词,翻译为“面板数据”。
  • 如果您使用的是 Pandas 0.25 以前的版本,那么您需要掌握本节内容,否则,作为了解内容即可。
  • 自 Pandas 0.25 版本后, Panel 结构已经被废弃。
  • Panel 是一个用来承载数据的三维数据结构,它有三个轴,分别是 items(0 轴),major_axis(1 轴),而 minor_axis(2 轴)。
  • 这三个轴为描述、操作 Panel 提供了支持,其作用介绍如下:
    • items:axis =0,Panel 中的每个 items 都对应一个 DataFrame。
    • major_axis:axis=1,用来描述每个 DataFrame 的行索引。
    • minor_axis:axis=2,用来描述每个 DataFrame 的列索引。

【二】pandas.Panel()

  • 您可以使用下列构造函数创建一个 Panel,如下所示:
pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)
  • 参数说明如下:
参数名称 描述说明
data 输入数据,可以是 ndarray,Series,列表,字典,或者 DataFrame。
items axis=0
major_axis axis=1
minor_axis axis=2
dtype 每一列的数据类型。
copy 默认为 False,表示是否复制数据。

【0】创建Panel 对象

  • 下面介绍创建 Panel 对象的两种方式:
    • 一种是使用 nadarry 数组创建
    • 另一种使用 DataFrame 对象创建。
  • 首先,我们学习如何创建一个空的 Panel 对象。

【1】创建一个空Panel

  • 使用 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】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
  • 请注意与上述示例的空 Panel 进行对比。

【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

【三】Panel中选取数据

  • 如果想要从 Panel 对象中选取数据,可以使用 Panel 的三个轴来实现,也就是itemsmajor_axisminor_axis。下面介绍其中一种,大家体验一下即可。

【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。

标签:major,4.0,items,DataFrame,pd,Panel,Pandas,axis
From: https://www.cnblogs.com/dream-ze/p/17726181.html

相关文章

  • 【8.0】Pandas和NumPy的比较
    【一】引入我们知道Pandas是在NumPy的基础构建而来因此,熟悉NumPy可以更加有效的帮助我们使用Pandas。NumPy主要用C语言编写因此,在计算还和处理一维或多维数组方面,它要比Python数组快得多。关于NumPy的学习,可以参考《PythonNumPy教程》。【二】创建数组数......
  • 解决:[email protected] requires a peer of node-sass@^4.0.0 but none is installed.
    参考:https://blog.csdn.net/hancoder/article/details/113821646去https://github.com/sass/npnode-sass或者https://github.com/sass/node-sass/releases都可以看到node和node-sass对应的版本信息npmconfigsetregistryhttp://registry.npm.taobao.org/npminstall......
  • python的pandas库:合并数据
    在Pandas中,如果你有两个数据框(DataFrames),且它们的列数和列名都相同,你可以使用concat或merge函数将它们合并。以下是具体步骤:首先,导入Pandas库:importpandasaspd创建两个列数和列名都相同的数据框:df1=pd.DataFrame({'A':['A0','A1','A2','A3'],'B':[�......
  • currently, chromedriver 114.0.5735.90 is recommended for chrome 114.*, so it is
    报错原因是驱动和浏览器不匹配解决办法1.下载低版本的谷歌浏览器  本次使用的是114  下载地址:https://downzen.com/en/windows/google-chrome/download/11405735199/  2.下载谷歌浏览器的插件https://registry.npmmirror.com/binary.html?path=chromedriver/114.......
  • 已解决pandas无法读取中文文件的问题
    已解决pandas无法读取中文文件的问题文章目录报错问题解决方法声明报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:pandas无法读取中文文件的问题文件有问题或者环境编码有问题!解决方法data=open(r'dataset......
  • Ubuntu 23.10/24.04 LTS 放弃默认使用 snap 版 CUPS 打印堆栈
    导读Canonical的开发者、OpenPrinting的项目负责人TillKamppeter今年5月表示,计划在Ubuntu23.10(ManticMinotaur)上默认使用Snap版本的CUPS打印堆栈。不过经过数月的测试,官方放弃了这项决定。Ubuntu23.10(ManticMinotaur)和Ubuntu24.04LTS发行版默认还是......
  • Ubuntu Server 14.04 LTS 设置静态IP地址
    IP地址以及网关修改、修改文件/etc/network/interfacessudovim/etc/network/interfaces对应作如下修改:autoeth0ifaceeth0inetstatic##原来的内容为ifaceeth0inetdhcpaddress192.168.0.117gateway192.168.0.1#这个地址你要确认下网关是不是这个地址net......
  • 箱讯全新上线的AnyCase4.0具体有什么特别之处
    作为领先的全球跨境贸易数智化服务平台,箱讯在为用户提供专业物流服务和专家级供应链解决方案的同时,也在日积月累的沉淀中深挖全球贸易需求,对产品进行持续升级和迭代。2023年9月15日,AnyCase4.0——全球贸易AllinOne集成平台上线啦!集物流服务,外贸服务,供应链金融服务和企业风控服务......
  • Pycharm 机器学习 pandas应用
    ......
  • pandas学习-基础用法
      导入数据、数据的基本操作¶  导入libraries¶ In [1]:importpandasaspdimportnumpyasnpimportos  导入数据¶ In [2]:file_path=os.path.abspath('data/chipotle.tsv')file_path......