Python数据科学手册-Pandas:层级索引
一维数据 和 二维数据 分别使用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
显示的创建多级索引
- 一个不同等级的若干简单数组组成的列表来构见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()
- 索引stack与unstack
unstack 将一个多级的索引数据 转为 简单的二维形式, level 设置转换的索引层级。
levle=1
stack是unstack的逆操作。
3)索引的设置 与 重置
层级数据维度转换的另一种方法是 行列标签转换。
可以通过reset_index方法实现。
Series中使用该方法, 会生成一个列标签中包含之前行索引 标签的state 和 year的 DataFrame.
set_index 逆操作。
多级索引的数据累计方法
可以设置参数 level实现对数据子集的累计操作。
增加axis参数。就可以累计了
Python数据科学手册-Pandas:层级索引的更多相关文章
- Python数据科学手册-Pandas:累计与分组
简单累计功能 Series sum() 返回一个 统计值 DataFrame sum.默认对每列进行统计 设置axis参数,对每一行 进行统计 describe()可以计算每一列的若干常用统计值. 获 ...
- Python数据科学手册-Pandas:向量化字符串操作、时间序列
向量化字符串操作 Series 和 Index对象 的str属性. 可以正确的处理缺失值 方法列表 正则表达式. Method Description match() Call re.match() ...
- Python数据科学手册-Pandas:数值运算方法
Numpy 的基本能力之一是快速对每个元素进行运算 Pandas 继承了Numpy的功能,也实现了一些高效技巧. 对于1元运算,(函数,三角函数)保留索引和列标签 对于2元运算,(加法,乘法),Pan ...
- Python数据科学手册-Pandas:数据取值与选择
Numpy数组取值 切片[:,1:5], 掩码操作arr[arr>0], 花哨的索引 arr[0, [1,5]],Pandas的操作类似 Series数据选择方法 Series对象与一维Nump ...
- Python数据科学手册-Pandas数据处理之简介
Pandas是在Numpy基础上建立的新程序库,提供了一种高效的DataFrame数据结构 本质是带行标签 和 列标签.支持相同类型数据和缺失值的 多维数组 增强版的Numpy结构化数组 行和列不在只 ...
- Python数据科学手册-Pandas:合并数据集
将不同的数据源进行合并 , 类似数据库 join merge . 工具函数 concat / append pd.concat() 简易合并 合并高维数据 默认按行合并. axis=0 ,试试 axi ...
- 100天搞定机器学习|day45-53 推荐一本豆瓣评分9.3的书:《Python数据科学手册》
<Python数据科学手册>共五章,每章介绍一到两个Python数据科学中的重点工具包.首先从IPython和Jupyter开始,它们提供了数据科学家需要的计算环境:第2章讲解能提供nda ...
- Python数据科学手册
Python数据科学手册(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1KurSdjNWiwMac3o3iLrzBg 提取码:qogy 复制这段内容后打开百度网盘手 ...
- Matplotlib 使用 - 《Python 数据科学手册》学习笔记
一.引入 import matplotlib as mpl import matplotlib.pyplot as plt 二.配置 1.画图接口 Matplotlib 有两种画图接口: (1)一个是 ...
随机推荐
- Re:用webpack从零开始的vue-cli搭建'生活'
有了vue-cli的帮助,我们创建vue的项目非常的方便,使用vue create然后选择些需要的配置项就能自动帮我们创建配置好的webpack项目脚手架了,实在是'居家旅行'必备良药.这次借着学习w ...
- 2022-07-21 第四组 java之继承
目录 一.继承 1.概念 2.语法 3.父类成员访问 3.1 子类访问父类的成员变量 3.1.1 子类和父类中不存在同名的成员变量 3.1.2 子类和父类中不存在同名的成员变量 3.2 子类中访问父类 ...
- Java的学习日常
当2020年10月进入大学,我选择了计算机专业,本想着自己会摒弃高中的不良习惯,认真学习.但随着和同学们的熟悉,自己的本性也逐渐暴露出来.两年懒散表现,让现在回过头的自己都不忍直视. 虽然在学习期间, ...
- Class对象共嫩
需求:写一个"框架",不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中任意方法 实现: 1.配置文件 2.反射 步骤: 1.将需要创建的对象的全类名和需要执 ...
- 清北学堂 2020 国庆J2考前综合强化 Day7
目录 1. 题目 T1 魔力石 题目描述 Sol T2 和 题目描述 Sol T3 数对 题目描述 Sol T4 海豹王国 题目描述 Sol 考场策略 1. 题目 T1 魔力石 题目描述 题目描述 小 ...
- tcp协议传输中的粘包问题
什么是粘包问题 tcp是流体协议. 其nagle算法会将数据量较小. 并且发送间隔时间较短的多个数据包合并为一个发送. 网络传输的时候是一段一段字节流的发送. 在接收方看来根本不知道字节流从何开始. ...
- 在阿里云Centos7.6上利用docker搭建Jenkins来自动化部署Django项目
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_84 一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更 ...
- Redis缓存雪崩、缓存穿透、缓存击穿
缓存雪崩 Redis中的缓存数据是有过期时间的,当在同一时间大量的缓存同时失效时就会造成缓存雪崩. 解决方案 1.设置Redis中的key永不过期,缺点是会占用很多内存 2.使用Redis的分布式锁S ...
- 大数据开发,Hadoop Spark太重?你试试esProc SPL
摘要:由于目标和现实的错位,对很多用户来讲,Hadoop成了一个在技术.应用和成本上都很沉重的产品. 本文分享自华为云社区<Hadoop Spark太重,esProc SPL很轻>,作者: ...
- Linux下一键安装Python3&更改镜像源&虚拟环境管理技巧
前言 之前分享过一篇<Linux系统自带Python2&yum的卸载及重装>,介绍了如何卸载及重装Linux(CentOS)自带的的Python2.7.今天主要介绍如何在Linux ...