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 相关文章推荐
使用python3.5仿微软记事本notepad
Jun 15 Python
Python采用Django开发自己的博客系统
Sep 29 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
python生成词云的实现方法(推荐)
Jun 13 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
Python操作MySQL模拟银行转账
Mar 12 Python
Python实现爬虫爬取NBA数据功能示例
May 28 Python
python生成九宫格图片
Nov 19 Python
Python 定义只读属性的实现方式
Mar 05 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
Python如何导出导入所有依赖包详解
Jun 08 Python
Python基础数据类型tuple元组的概念与用法
Aug 02 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采集利器 Snoopy 试用心得
2011/07/03 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
浅谈php自定义错误日志
2015/02/13 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
python控制台英汉汉英电子词典
2020/04/23 Python
Python中的生成器和yield详细介绍
2015/01/09 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
农药学硕士毕业生自荐信
2013/09/25 职场文书
银行出纳岗位职责
2013/11/25 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
健康状况证明书
2014/11/26 职场文书
离婚协议书范文2015
2015/01/26 职场文书