Pandas之MultiIndex对象的示例详解


Posted in Python onJune 25, 2019

约定

import pandas as pd
from pandas import DataFrame
import numpy as np

MultiIndex

MultiIndex表示多级索引,它是从Index继承过来的,其中多级标签用元组对象来表示。

一、创建MultiIndex对象

创建方式一:元组列表

m_index1=pd.Index([("A","x1"),("A","x2"),("B","y1"),("B","y2"),("B","y3")],name=["class1","class2"])
m_index1

代码结果:

MultiIndex(levels=[['A', 'B'], ['x1', 'x2', 'y1', 'y2', 'y3']],
      labels=[[0, 0, 1, 1, 1], [0, 1, 2, 3, 4]],
      names=['class1', 'class2'])
df1=DataFrame(np.random.randint(1,10,(5,3)),index=m_index1)
df1

代码结果:

0 1 2
class1 class2
A x1 7 4 8
x2 4 5 2
B y1 6 9 7
y2 2 1 6
y3 6 8 6

创建方式二:特定结构

例如**from_arrays()

class1=["A","A","B","B"]
class2=["x1","x2","y1","y2"]
m_index2=pd.MultiIndex.from_arrays([class1,class2],names=["class1","class2"])
m_index2

代码结果:

MultiIndex(levels=[['A', 'B'], ['x1', 'x2', 'y1', 'y2']],
      labels=[[0, 0, 1, 1], [0, 1, 2, 3]],
      names=['class1', 'class2'])
df2=DataFrame(np.random.randint(1,10,(4,3)),index=m_index2)
df2

代码结果:

0 1 2
class1 class2
A x1 2 4 5
x2 3 5 9
B y1 7 1 2
y2 3 1 8

创建方式三:笛卡尔积

from_product()从多个集合的笛卡尔积创建MultiIndex对象。

m_index3=pd.MultiIndex.from_product([["A","B"],['x1','y1']],names=["class1","class2"])
m_index3

代码结果:

MultiIndex(levels=[['A', 'B'], ['x1', 'y1']],
      labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
      names=['class1', 'class2'])
df3=DataFrame(np.random.randint(1,10,(2,4)),columns=m_index3)
df3

代码结果:

class1 A B
class2 x1 y1 x1 y1
0 2 9 1 8
1 5 2 5 2

二、MultiIndex对象属性

df1

代码结果:

0 1 2
class1 class2
A x1 7 4 8
x2 4 5 2
B y1 6 9 7
y2 2 1 6
y3 6 8 6
m_index4=df1.index
print(in1[0])

代码结果:

('A', 'x1')

调用.get_loc()和.get_indexer()获取标签的下标:

print(m_index4.get_loc(("A","x2")))
print(m_index4.get_indexer([("A","x2"),("B","y1"),"nothing"]))

代码结果:

1
[ 1  2 -1]

MultiIndex对象使用多个Index对象保存索引中每一级的标签:

print(m_index4.levels[0])
print(m_index4.levels[1])

代码结果:

Index(['A', 'B'], dtype='object', name='class1')
Index(['x1', 'x2', 'y1', 'y2', 'y3'], dtype='object', name='class2')

MultiIndex对象还有属性labels保存标签的下标:

print(m_index4.labels[0])
print(m_index4.labels[1])

代码结果:

FrozenNDArray([0, 0, 1, 1, 1], dtype='int8')
FrozenNDArray([0, 1, 2, 3, 4], dtype='int8')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
利用Python如何生成便签图片详解
Jul 09 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
python中比较两个列表的实例方法
Jul 04 Python
Python with用法:自动关闭文件进程
Jul 10 Python
Python绘制股票移动均线的实例
Aug 24 Python
浅析Python requests 模块
Oct 09 Python
python温度转换华氏温度实现代码
Dec 06 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 Python
Python作用域和名称空间的详细介绍
Apr 13 Python
Python+threading模块对单个接口进行并发测试
Jun 25 #Python
python简单鼠标自动点击某区域的实例
Jun 25 #Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 #Python
python命令行参数用法实例分析
Jun 25 #Python
PyQt5重写QComboBox的鼠标点击事件方法
Jun 25 #Python
bluepy 一款python封装的BLE利器简单介绍
Jun 25 #Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 #Python
You might like
php学习笔记之面向对象编程
2012/12/29 PHP
js history对象简单实现返回和前进
2013/10/30 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
几种响应式文字详解
2017/05/19 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
python中的装饰器详解
2015/04/13 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Python 占位符的使用方法详解
2019/07/10 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
python中的对数log函数表示及用法
2020/12/09 Python
纽约手袋品牌:KARA
2018/03/18 全球购物
印度在线杂货店:bigbasket
2018/08/23 全球购物
大二学生学习个人自我评价
2014/01/19 职场文书
打造完美自荐信
2014/01/24 职场文书
早会主持词
2014/03/17 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
农业项目建议书
2014/08/25 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书