【Python数据科学手册】Pandas——六、层级索引

六、层级索引

对于高维的数据,可以通过将其纬度转换成不同层级的索引,从而实现将高维数组转换成类似一维Series或二维DataFrame对象的形式。

1.多级索引Series

如何用一维的Series表示二维数据

1)笨方法,将两个维度合并成一个元组索引

在这里插入图片描述
取值和切片方法同正常的Series
但是如果想取其中某一个维度的某元素数据,就比较麻烦
在这里插入图片描述

2).好办法:Pandas多级索引MultiIndex

在这里插入图片描述
切片方法与pandas方法一致

pop['California':'Texas'][:,2000]
3).维度与索引unstack()和stack()

维度与索引可以互相转换
索引–unstack()–>维度:默认将最后一层索引转换成维度

在这里插入图片描述
维度-----stack()–>索引:默认将维度转换成最后一层索引
在这里插入图片描述
研究多层索引的意义就是:
如果我们可以用含多级索引的一维 Series 数据表示二维数据,那么我们就可以用 Series 或 DataFrame 表示三维甚至更高维度的数据。
多级索引每增加一级,就表示数据增加一维,利用这一特点就可以轻松表示任意维度的数据了。
在这里插入图片描述

2.多级索引的创建方法

1).隐式地创建多层索引

一是直接将index参数设置二维及以上的索引数据
在这里插入图片描述
二是将元组作为键的字典传递给 Pandas, Pandas 也会默认转换为 MultiIndex
在这里插入图片描述

2)隐式地创建索引

a.创建方法
pd.MultiIndex.from_arrays()数组
在这里插入图片描述

pd.MultiIndex.from_tuples()元组
在这里插入图片描述

pd.MultiIndex.from_product()笛卡尔积
在这里插入图片描述
pd.MultiIndex(levels,labels)levels,labels参数
在这里插入图片描述b.为多层索引设置名称
在这里插入图片描述
c.多级列索引
在这里插入图片描述
切片
在这里插入图片描述

3.多级索引的取值与切换

1).Series多级索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2).DataFrame多级索引

在这里插入图片描述
在这里插入图片描述

4.多级索引行列转换

1).有序的索引和无序的索引

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825141853774.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDg0NDExNg==,size_16,color_FFFFFF,t_70#pic_center

2).索引stack与unstack

unstack(level=-1, fill_value=None)
stack(level=-1, dropna=True)

3).索引的设置与重置 reset_index

reset_index(level=None, drop=False, name=None, inplace=False)是将索引设置成正常的列
在这里插入图片描述

set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)是将列设置成索引
在这里插入图片描述当然,也可以直接赋值给DataFrame的索引属性

df.index = df.date

5.多级索引的数据累计方法

Pandas 自带的数据累计方法,比如 mean()、 sum() 和 max(),也适用于多级索引
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值