clllll  

一维数据 和 二维数据 分别使用Series 和 DataFrame 对象存储。
多维数据:数据索引 超过一俩个 键。
Pandas提供了Panel 和 Panel4D对象 解决三维数据和四维数据。
实践中,更直观的形式是通过 层级索引(Hierarchical indexing, 多级索引 = 》 muti-indexing)
配合 多个不同 等级的一级索引 一起使用。

本节介绍 MultiIndex对象的使用,以及 普通索引 与 层级索引的转换

多级索引Series

  • 笨方法
  • 好方法: MultiIndex
    上面的笨方法 是用元组来表示索引 就是 多级索引的基础。

可以用元组创建一个多级索引


levels 属性表示索引的等级 。

前面的 Series对象 使用索引重置(reindex)就转换为MultiIndex

切片获取 2010 年的数据

  • 高维数据的多级索引
    可以使用一个带行 列 索引的 简单DataFrame 代替前面的多级索引。
    unstack()方法可以快速将一个多级索引的Series 转换为普通索引的DataFrame.

    stack()方法 反过来

why:
可以使用含多级索引的一维Series 表示 二维数据,
就可以使用
Series 或DataFrame 表示 三维 甚至更高维度的数据。
多级索引 每 增加 以及,就表示数据增加一维。

比如:增加一列显示每一年 各州的人口统计指标。
对于带有MultiIndex的对象。增加一列,就和DataFrame一样简单。

多级索引创建方法

为Series 和 DataFrame 创建多级索引 最 直接 的办法就是将index参数设置为至少 二维的索引数组。

同理,将元组作为键的字典传递给Pandas, Pandas也会默认转换为MultiIndex

显示的创建多级索引

  1. 一个不同等级的若干简单数组组成的列表来构见MultiIndex


2) 包含多个索引值得元组构成的列表

3) 俩个索引的笛卡尔积

4)直接提供levels ,注意老版本是labels,新版本是code了。

在创建Series 或 DataFrame时,可以将这些对象作为index参数。 或者通过reindex方法更新Series/DataFrame.

多级索引的等级名称

多级列索引

行与列是对称的。

多级索引的取值与切片

1)Series多级索引
单个元素

局部取值

局部切片

较低层级的索引

布尔掩码

花哨索引

2)DataFrame多级索引
DataFrame的基本索引是列索引。

传递多个层级的索引元组

2022年5月31日23:18:51

多级索引行列转换

1) 有序的索引和无序的索引
如果MultiIndex不是有序的索引,那么大多数切片操作都会失败。
局部切片要求MultiIndex各级索引 有序。 按照字典序。

索引排序。 sort_index() sortlevel()


  1. 索引stack与unstack
    unstack 将一个多级的索引数据 转为 简单的二维形式, level 设置转换的索引层级。

levle=1

stack是unstack的逆操作。
3)索引的设置 与 重置
层级数据维度转换的另一种方法是 行列标签转换。
可以通过reset_index方法实现。

Series中使用该方法, 会生成一个列标签中包含之前行索引 标签的state 和 year的 DataFrame.

set_index 逆操作。

多级索引的数据累计方法

可以设置参数 level实现对数据子集的累计操作。

增加axis参数。就可以累计了

posted on   llcl  阅读(450)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
 
点击右上角即可分享
微信分享提示