pandas 笔记:multi-index
多维度索引
1 前言
比如我们有这么一个DataFrame
data = pd.DataFrame(np.random.randn(5),index=[['a', 'a', 'a', 'd','d'],[1, 2, 3, 1, 2]])
那么此时有两列index ,这就是multi-index
mindex = data.index
mindex
'''
MultiIndex([('a', 1),('a', 2),('a', 3),('d', 1),('d', 2)],)
'''
2 属性
2.1 levels
不同层级上的属性值
mindex.levels
#FrozenList([['a', 'd'], [1, 2, 3]])
2.2 codes
不同层级上索引元素的位置
mindex.codes
# FrozenList([[0, 0, 0, 1, 1], [0, 1, 2, 0, 1]])
表示第一个索引('a','d') 0号(也就是'a')对应的是第一个列表元素为0的行(前三行);1号(也就是'd')对应的是第一个列表元素为1的行(后两行)
第二个索引(1 2 3) 0号(也就是1)对应的是第二个列表元素为0的行(第一行第四行);1号(也就是'2')对应的是第二个列表元素为1的行(第二行第五行);2号(也就是3)对应的是第二个列表元素为2的行(第三行)
2.3 names
索引的名称(我们这里是没有)
mindex.names
#FrozenList([None, None])
3 构建多层索引
3.1 直接DataFrame 构建
data = pd.DataFrame(np.random.randn(5),index=[['a', 'a', 'a', 'd','d'],[1, 2, 3, 1, 2]])
data'''0
a 1 -0.4793182 -0.4715943 -1.550214
d 1 0.3294462 -0.607804
''''
3.2 从列表转化
两个列表相同索引的元素组成一个index
mindex = pd.MultiIndex.from_arrays([['a-', 'a-', 'a-', 'a-', 'd-'],[-1, -2, -3, -1, -2]])data.reindex(mindex)
'''0
a- -1 NaN-2 NaN-3 NaN-1 NaN
d- -2 NaN
'''
3.3 从元组转化
mindex = pd.MultiIndex.from_tuples([('a',1), ('a',2), ('b',1)])
data.reindex(mindex)
'''0
a 1 -1.407190
2 1.193368
b 1 NaN
'''
每一个元组中的元素组成一个index
3.4 使用两个列表的笛卡尔乘积转化
mindex = pd.MultiIndex.from_product([['a','d'], [1,2]])
data.reindex(mindex)'''0
a 1 -1.4071902 1.193368
d 1 -0.3431652 -0.112372
'''
4 转换多维索引的顺序
将第0维和第一维的索引交换
data.swaplevel(0,1)
'''0
1 a -1.407190
2 a 1.193368
3 a -0.352287
1 d -0.343165
2 d -0.112372
'''
pandas 笔记:multi-index相关推荐
- pandas笔记(pandas Data Structures)
pandas笔记(pandas Data Structures) 生信start_site已关注 32020.06.15 03:02:37字数 766阅读 509 pandas包含数据结构和数据操作工 ...
- pandas不显示index_大熊猫 - 不在索引中(pandas - not in index)
大熊猫 - 不在索引中(pandas - not in index) 我正在尝试替换列'A'中的nan值(第一行出现在第9行),前一个值是前一行 y = len(df) for i in range( ...
- pandas系列之index小记
pandas系列之index 1.1 重置索引 常见索引drop用法 import pandas as pd # 数据准备 df = pd.DataFrame(np.arange(20).reshap ...
- 【Python基础】Pandas笔记---概述与数据结构
点击上方"潜心的Python小屋"关注我们,第一时间推送优质文章. 前言 大家好,我是潜心.因为最近做实验发现Pandas的数据处理技术忘记了,所以准备系统的概述一下Pandas的 ...
- 优达学城Numpy与Pandas笔记
此篇为优达学城数据分析入门第二课笔记网址 基本操作 import numpy as np# First 20 countries with employment data countries = np ...
- 系统重温Pandas笔记:(十)时序数据
文章目录 写在前面 一.时序中的基本对象 二.时间戳 1. Timestamp的构造与属性 2. Datetime序列的生成 [练一练] 3. dt对象 4. 时间戳的切片与索引 三.时间差 1. T ...
- 系统重温Pandas笔记:(七)缺失数据
文章目录 写在前面 一.缺失值的统计和删除 1. 缺失信息的统计 2. 缺失信息的删除 二.缺失值的填充和插值 1. 利用fillna进行填充 [练一练] 2. 插值函数 三.Nullable类型 1 ...
- pandas笔记:根据列索引名称/行索引名称 对列重新排序
源数据: import pandas as pd frame=pd.DataFrame(np.arange(12).reshape((4,3)),columns=['c','a','b'],index ...
- 【Python基础】Pandas笔记---深入Groupby,它的功能没有你想的这么简单
点击上方"潜心的Python小屋"关注我们,第一时间推送优质文章. 前言 大家好,我是潜心.上篇文章提到了Groupby,但其中举例的代码有点问题,在提取序列时用到了for循环,效 ...
- 【Python基础】Pandas笔记---通过比赛整理出的10条Pandas实用技巧
点击上方"潜心的Python小屋"关注我们,第一时间推送优质文章. 前言 大家好,我是潜心.最近还在参加某比赛,将pandas对数据预处理的方法进行了总结,以下列出的10条是我觉得 ...
最新文章
- navcat设置oracle表主键自增_初识 Oracle 表空间设置与管理
- 《飞鸽传书2007怎么用》这种即时通讯技术已开始普及
- jieba中文处理的学习
- Numpy的学习6-深浅赋值(copydeep copy)
- 20200114每日一句
- Python开发的一个IDE推荐,Sublime Text 3
- 小米选择了总是打开方式_小米更改默认程序 小米修改默认程序的打开方式
- 【数据攻略】 假设检验 | 统计功效 | 最小样本量
- 最小二乘法曲线拟合(代码注释)
- 2020认证杯第二阶段选提建议
- 360 自动 html 极速模式,用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式(顺带解决很多兼容性问题)...
- Maven详解【Idea搭建Maven项目、Maven常用指令、Maven的传递性和依赖性、排除依赖】
- Unity显示360度全景照片
- 针对RK3328平台搭建支持KVM的Linux环境
- centos7上面安装geany编辑器
- Failed to check the status of the service. No provider available for the service【已解决】
- 深入理解非阻塞同步IO和非阻塞异步IO
- 2021年MathorCup高校数学建模挑战赛——大数据竞赛A题
- 海康威视2019年校园招聘内推码(2019届春招、2020届实习/秋招)
- MeeGo的中国救亡之路:Jolla与迪信通牵手合作