一维数据 和 二维数据 分别使用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参数。就可以累计了

Python数据科学手册-Pandas:层级索引的更多相关文章

  1. Python数据科学手册-Pandas:累计与分组

    简单累计功能 Series sum() 返回一个 统计值 DataFrame sum.默认对每列进行统计 设置axis参数,对每一行 进行统计 describe()可以计算每一列的若干常用统计值. 获 ...

  2. Python数据科学手册-Pandas:向量化字符串操作、时间序列

    向量化字符串操作 Series 和 Index对象 的str属性. 可以正确的处理缺失值 方法列表 正则表达式. Method Description match() Call re.match() ...

  3. Python数据科学手册-Pandas:数值运算方法

    Numpy 的基本能力之一是快速对每个元素进行运算 Pandas 继承了Numpy的功能,也实现了一些高效技巧. 对于1元运算,(函数,三角函数)保留索引和列标签 对于2元运算,(加法,乘法),Pan ...

  4. Python数据科学手册-Pandas:数据取值与选择

    Numpy数组取值 切片[:,1:5], 掩码操作arr[arr>0], 花哨的索引 arr[0, [1,5]],Pandas的操作类似 Series数据选择方法 Series对象与一维Nump ...

  5. Python数据科学手册-Pandas数据处理之简介

    Pandas是在Numpy基础上建立的新程序库,提供了一种高效的DataFrame数据结构 本质是带行标签 和 列标签.支持相同类型数据和缺失值的 多维数组 增强版的Numpy结构化数组 行和列不在只 ...

  6. Python数据科学手册-Pandas:合并数据集

    将不同的数据源进行合并 , 类似数据库 join merge . 工具函数 concat / append pd.concat() 简易合并 合并高维数据 默认按行合并. axis=0 ,试试 axi ...

  7. 100天搞定机器学习|day45-53 推荐一本豆瓣评分9.3的书:《Python数据科学手册》

    <Python数据科学手册>共五章,每章介绍一到两个Python数据科学中的重点工具包.首先从IPython和Jupyter开始,它们提供了数据科学家需要的计算环境:第2章讲解能提供nda ...

  8. Python数据科学手册

    Python数据科学手册(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1KurSdjNWiwMac3o3iLrzBg 提取码:qogy 复制这段内容后打开百度网盘手 ...

  9. Matplotlib 使用 - 《Python 数据科学手册》学习笔记

    一.引入 import matplotlib as mpl import matplotlib.pyplot as plt 二.配置 1.画图接口 Matplotlib 有两种画图接口: (1)一个是 ...

随机推荐

  1. meet in the middle 复习笔记

    前言 若干年前看过现在又忘了.这么简单都忘 所以今天来重新复习一下. 正题 考虑这样的问题: 给定 \(n\) 个物品的价格,你有 \(m\) 块钱,每件物品限买一次,求买东西的方案数. \(n\le ...

  2. Cascade-LSTM: A Tree-Structured Neural Classifier for Detecting Misinformation Cascades(KDD20)

    Cascade-LSTM是一个用于虚假信息级联检测的树结构神经分类器,它本质上是一个谣言(假新闻)检测模型,它将谣言检测任务视为一个树分类问题. Cascade-LSTM在递归神经网络(本文具体基于T ...

  3. JDBCTools 第一个版本

    JDBCToolV1: package com.dgd.test; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax ...

  4. NFS介绍与搭建

    一.NFS的介绍 1.1.什么是NFS NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布. NFS在文件传 ...

  5. linux服务配置IP或者说可以远程连接

    切换目录 cd /etc/sysconfig/network-scripts ls查看当前目录下的东西 找到ipcfg- 开头的,而且不是iocfg-lo,而上图就是那个ifcfg-ens33. 则进 ...

  6. ooday03 Java_引用类型数组_继承_super_向上造型

    引用类型数组: 点击查看代码 1)Bomb[] bs = new Bomb[3]; bs[0] = new Bomb(100,200); bs[1] = new Bomb(200,300); bs[2 ...

  7. 第十五天python3 文件IO(一)

    一.文件打开 open(path,flag[,encoding][,errors]) 参数说明: path:要打开文件的路径 flag:打开方式( r:以只读的方式打开文件,文件的描述符放在文件开头 ...

  8. 数据平台调度升级改造 | 从Azkaban 平滑过度到 Apache DolphinScheduler 的操作实践

    Fordeal的数据平台调度系统之前是基于Azkaban进行二次开发的,但是在用户层面.技术层面都存在一些痛点问题难以被解决.比如在用户层面缺少任务可视化编辑界面.补数等必要功能,导致用户上手难体验差 ...

  9. Luogu2543[AHOI2004]奇怪的字符串 (动态规划 LCS)

    04年的省选这么water吗,开个滚动数组算了 #include <iostream> #include <cstdio> #include <cstring> # ...

  10. meterpreter后期攻击使用方法

    Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道.使用它作为攻击载荷能够获得目标系统的一个Meterp ...