Pandas MultiIndex 详解
文章目录
- 1. 什么是Index
- 2. 什么是MultiIndex
- 2.1 levels和codes的意义
1. 什么是Index
学习MultiIndex前,首先要看一下Index。
Index是DataFrame的索引,如下代码生成一个DataFrame。
frame_index = pd.DataFrame(np.arange(6).reshape((2,3)), index=['a','b'],columns=['Ohio', 'Ohio', 'Colorado'])
frame_index
Ohio | Ohio | Colorado | |
---|---|---|---|
a | 0 | 1 | 2 |
b | 3 | 4 | 5 |
frame_index.index
Index(['a', 'b'], dtype='object')
可以看到index就一层‘a’和‘b’。
frame_index.columns
Index(['Ohio', 'Ohio', 'Colorado'], dtype='object')
columns也是一个index,只不过表示列而已。
2. 什么是MultiIndex
MultiIndex顾名思义是多级索引,看一下多级索引的DataFrame生成如下:
frame = pd.DataFrame(np.arange(12).reshape((4,3)), index=[['a', 'a', 'b', 'b'], [1,2,1,2]],columns=[['Ohio', 'Ohio', 'Colorado'], ['Green', 'Red', 'Green']])
frame
Ohio | Colorado | |||
---|---|---|---|---|
Green | Red | Green | ||
a | 1 | 0 | 1 | 2 |
2 | 3 | 4 | 5 | |
b | 1 | 6 | 7 | 8 |
2 | 9 | 10 | 11 |
frame.index
MultiIndex(levels=[['a', 'b'], [1, 2]],codes=[[0, 0, 1, 1], [0, 1, 0, 1]])
可以看到当选择frame.index时候,对象变成了MultiIndex,这是因为MultiIndex是Index的一个子类,当DataFrame的index索引传入多列表时,自动构建多级索引,那么不禁要问levels和codes的意义?
2.1 levels和codes的意义
levels和codes是为了确定多级索引的对应关系。
- levels的第一级列表[‘a’,‘b’],对应codes的[0,0,1,1],codes中是0代表’a’的位置,1代表‘b’的位置。
- leves的第二级列表[1,2],对应codes的[0,1,0,1],codes中的0代表1的位置,1代表2的位置。
两级位置确定后,根据codes位置标识绘制如下:
这个表格恰恰是frame的index对应关系,我们的解读是正确的。
columns同理,这里不再赘述了。
注意:在pandas version 0.24.0之前,codes用labels来表示的,意义相同。
Pandas MultiIndex 详解相关推荐
- Pandas知识点-详解行列级批处理函数apply
Pandas知识点-详解行列级批处理函数apply 在Pandas中,DataFrame和Series等对象需要执行批量处理操作时,可以借用apply()函数来实现. apply()的核心功能是实现& ...
- Python 数据合并方法 —— Pandas concat() 详解
详解concat 参数说明 concat说明 ignore_index 示例 Example Reference 参数说明 pandas.concat(objs, axis=0, join='oute ...
- Python之Pandas连接详解
一.关系型连接 1. 连接的基本概念 把两张相关的表按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩表按照姓名和班级连接成总的成绩表,又例如对企业员工的各类信息表按照员工ID ...
- python pandas库详解_Pandas 库的详解和使用补充
pandas 库总体说明 Pandas 基亍 NumPy.SciPy 补充了大量数据操作功能,能实现统计.凾组.排序.透规 表,可以代替 Excel 的绛大部凾功能. Pandas 主要有 2 种重要 ...
- 【python数据挖掘课程】二十三.时间序列金融数据预测及Pandas库详解
这是<Python数据挖掘课程>系列文章,也是我上课内容及书籍中的一个案例.本文主要讲述时间序列算法原理,Pandas扩展包基本用法以及Python调用statsmodels库的时间序列算 ...
- python csv pandas_Python Pandas——Read_csv详解
目前最常用的数据保存格式可能就是CSV格式了,数据分析第一步就是获取数据,怎样读取数据至关重要. 本文将以pandas read_csv方法为例,详细介绍read_csv数据读取方法.再数据读取时进行 ...
- Pandas index详解
总括 pandas里对索引的操作主要有 DataFrame.rename DataFrame.rename_axis DataFrame.reindex DataFrame.reindex_axis ...
- pandas.read_csv() 详解与如何合适的读取行序号与列名
作为常用的函数,pandas.read_csv() 用于读取各种数据文件(.dat.txt.csv等),在这里做一个详细的解释. 灵活运用index_col与header准确的读取csv文件的行索引与 ...
- pandas.pivot_table详解
想必大家都用过excel, 肯定会熟悉excel中的透视表, python中pandas.pivot就是在DataFrame表格中实现这个操作, 什么? 连透视表都不知道? 没事,往下看就知道了 目录 ...
最新文章
- python requests 使用代理
- 为什么要看源码、如何看源码,高手进阶必看
- Oracle日期转换处理
- 外贸想做好开发客户和地推?就一定要用这个软件!
- ABAP之Screen
- 入坑 Electron 开发跨平台桌面应用
- 【Warning】Unity2021.1将不兼容之前版本ECS
- 计算机学报格式_参考文献格式的那些事儿
- mui 怎么调用系统键盘_电脑开机关机的几种方法,计算机电源键鼠标键盘网络唤醒图文教程...
- [笔记]深入解析Windows操作系统《二》系统架构
- jira项目管理 jira流程开展
- 计算机常规教学ppt,计算机基本PPT教学.ppt
- POJ 3253.Fence Repair
- i3 9350KF和i5 9400F的区别
- 我是一个将近30岁的女程序员
- L1-075 强迫症
- pytest入门_测试用例分类_@pytest.mark.smoke
- ssm毕设项目客房订餐系统s2whx(java+VUE+Mybatis+Maven+Mysql+sprnig)
- 神策数据微信小程序 SDK 架构解析
- 超级签名与企业签名有什么区别,开发者想要做签名分发需要注意什么?怎么防止入坑(当然入坑是必须的)