文章目录

  • 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是为了确定多级索引的对应关系

  1. levels的第一级列表[‘a’,‘b’],对应codes的[0,0,1,1],codes中是0代表’a’的位置,1代表‘b’的位置。
  2. 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 详解相关推荐

  1. Pandas知识点-详解行列级批处理函数apply

    Pandas知识点-详解行列级批处理函数apply 在Pandas中,DataFrame和Series等对象需要执行批量处理操作时,可以借用apply()函数来实现. apply()的核心功能是实现& ...

  2. Python 数据合并方法 —— Pandas concat() 详解

    详解concat 参数说明 concat说明 ignore_index 示例 Example Reference 参数说明 pandas.concat(objs, axis=0, join='oute ...

  3. Python之Pandas连接详解

    一.关系型连接 1. 连接的基本概念 把两张相关的表按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩表按照姓名和班级连接成总的成绩表,又例如对企业员工的各类信息表按照员工ID ...

  4. python pandas库详解_Pandas 库的详解和使用补充

    pandas 库总体说明 Pandas 基亍 NumPy.SciPy 补充了大量数据操作功能,能实现统计.凾组.排序.透规 表,可以代替 Excel 的绛大部凾功能. Pandas 主要有 2 种重要 ...

  5. 【python数据挖掘课程】二十三.时间序列金融数据预测及Pandas库详解

    这是<Python数据挖掘课程>系列文章,也是我上课内容及书籍中的一个案例.本文主要讲述时间序列算法原理,Pandas扩展包基本用法以及Python调用statsmodels库的时间序列算 ...

  6. python csv pandas_Python Pandas——Read_csv详解

    目前最常用的数据保存格式可能就是CSV格式了,数据分析第一步就是获取数据,怎样读取数据至关重要. 本文将以pandas read_csv方法为例,详细介绍read_csv数据读取方法.再数据读取时进行 ...

  7. Pandas index详解

    总括 pandas里对索引的操作主要有 DataFrame.rename DataFrame.rename_axis DataFrame.reindex DataFrame.reindex_axis ...

  8. pandas.read_csv() 详解与如何合适的读取行序号与列名

    作为常用的函数,pandas.read_csv() 用于读取各种数据文件(.dat.txt.csv等),在这里做一个详细的解释. 灵活运用index_col与header准确的读取csv文件的行索引与 ...

  9. pandas.pivot_table详解

    想必大家都用过excel, 肯定会熟悉excel中的透视表, python中pandas.pivot就是在DataFrame表格中实现这个操作, 什么? 连透视表都不知道? 没事,往下看就知道了 目录 ...

最新文章

  1. 知乎李大海对话阿里云贾扬清:透视AI应用难题与未来趋势
  2. python gdbt+fm_GBDT回归的原理及Python实现
  3. ubuntu MNN编译安装
  4. 串口通信模块5:串口操作自定义类(3)
  5. JAVA异常处理正常的逻辑_JAVA异常的思考与总结
  6. 光纤测试时怎么选择对应项目的测试标准及测试仪?
  7. Android之px 与 dp, sp换算公式
  8. (转)基于MVC4+EasyUI的Web开发框架形成之旅--权限控制
  9. 虚拟资源拳王公社:做什么副业能最快赚到钱?虚拟副业是怎么赚钱的
  10. AirFlow常见问题汇总
  11. 数据结构习题之线性表
  12. ubuntu 20 /CentOS 8.x/MAC 系统 中安装GO LANG(GO语言)
  13. VMwareESX上的SCOM控制台无法正常运行
  14. python catia 接口_CATIA二次开发工程制图接口:
  15. 最新CCC认证目录范围(2019)
  16. Github | 标星 1W+ 清华大学计算机系课程攻略!
  17. 计算机图形学最新发展的技术,浅析计算机图形学应用及技术发展趋势.doc
  18. ThinkPHP php 仿千图网源码_2018最新友价内核
  19. 掌握电商后台设计,这一篇足矣(转载)
  20. 对搜索引擎不友好的网站具有怎样的特征?

热门文章

  1. 什么知识库工具适合小团队?看看文档管理系统+NAS的最新解决方案
  2. vue+echarts GL 3d 实现省市区(安徽-合肥市)下钻
  3. 如何在Visio中插入公式的两种方法(WPS+Mathtype插入)
  4. 扇贝python课程打卡_扇贝打卡500天纪实——如何有效利用扇贝记单词、学习英语?...
  5. 棒棒糖球球机器人_球球大作战刷棒棒糖
  6. pyspark:FPgrowth
  7. 高考之后,入世之前,我上了数据的“贼船”
  8. Unity卡通风格的渲染之描边
  9. Smart Share:抓住每一个机会,让数据释放无限可能
  10. MFC 消息映射 消息传递MESSAGE_MAP 读深入浅出MFC感悟