Part16:Pandas的分层索引MultiIndex怎么用?【详解】

news/2024/5/19 11:46:03/文章来源:https://blog.csdn.net/qq_46044325/article/details/126908569

Pandas的分层索引Multilndex¶

1为什么要学习分层索引Multilndex?

1、分层索引:在一个轴向上拥有多个索引层级,可以表达更高维度数据的形式;

2、方便的进行数据筛选,如果有序则性能更好;

3、groupby等操作的结果,如果是多KEY,结果是分层索引,需要会使用。

4、一般不需要自己创建分层索引(Multilndex有构造函数但一般不用)

演示数据:百度、阿里巴巴、爱奇艺、京东四家公司的10天股票数据数据来自:英为财经

—、Series的分层索引Multilndex

二、Series有多层索引怎样筛选数据?

三、DataFrame的多层索引Multilndex

四、DataFrame有多层索引怎样筛选数据?

import pandas as pd
%matplotlib inline
stocks=pd.read_excel('./datas/stocks/互联网公司股票.xlsx')
stocks.shape
stocks

 

stocks['公司'].unique()
stocks.index
#计算每个公司收盘的平均值
stocks.groupby('公司')['收盘'].mean()

一、Series的分层索引MultiIndex 

ser=stocks.groupby(['公司','日期'])['收盘'].mean()
ser
ser.index
# unstack把二级索引变成列
ser.unstack()
ser
#全部变成一维的普通索引模式
ser.reset_index()

 

 二、Series有多层索引Multilndex怎样筛选数据?

 

ser
ser.loc['BIDU']
# 多层索引,可以用元组的形式进行筛选
ser.loc[('BIDU','2019-10-02')]

#求所有公司中指定月份的收盘价
ser.loc[:,'2019-10-02']

 三、DataFrame的多层索引Multilndex

stocks.head()
stocks.set_index(['公司','日期'],inplace=True)
stocks

stocks.index
#自动根据索引进行排序,默认为升序排列
stocks.sort_index(inplace=True)
stocks

 

 

四、DataFrame有多层索引Multilndex怎样筛选数据?

【重要知识】在选择数据时:

。元组(key1.key2)代表筛选多层索引,其中key1是索引第一级,key2是第二级,比如key1=JD, key2=2019-10-02

·列表[key1,key2]代表同一层的多个KEY,其中key1和key2是并列的同级索引,比如key1=JD, key2=BIDU

stocks.loc['BIDU']

#  'BIDU'是一级索引  '2019-10-02'是二级索引
stocks.loc[('BIDU','2019-10-02'),:]

 

stocks.loc[('BIDU','2019-10-02'),'开盘']

#设置日期的同一级索引的格式
stocks.loc[('BIDU',['2019-10-03','2019-10-02']),'收盘']

#slice(None)代表筛选中一索引的所有内容---在这里的意思就是筛选一级索引‘公司’的所有内容
stocks.loc[(slice(None),['2019-10-03','2019-10-02']),:]

 

#将多重索引全部重置,转换为一维索引
stocks.reset_index()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_9345.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

元宇宙产业委常务副主任委员甘华鸣:关于术语“元宇宙”以及相关问题

【央链知播-编者按:元宇宙产业委常务副主任委员甘华鸣就全国科学技术名词审定委员会元宇宙及核心术语概念研讨会提出的一个观点,发表自己的看法,写了《关于术语“元宇宙”以及相关问题》一文,现转发供元宇宙产业和学术界思考】 以…

老鼠出迷宫

老鼠出迷宫 现有一个图形如下: 要求老鼠在左边第一个位置,走到绿色标的出口橙色为边界不能走。 表盘可以看做是一个[8][7]大小的二维数组,可以用1表示边界,0表示可以走 int [][] arrMap new int[8][7];得到一个数组&#xff1…

Python——基础语法(模块、包、文件读写等操作)

一、模块 概述:一个模块就是一个扩展名为.py的文件,可以包含多个函数、类、语句;使用模块可以提高代码的可维护性、可重用性,避免函数名和变量名冲突,方便其他程序和脚本的导入和使用。 二、模块的自定义 创建一个新…

基于ssm的社区医院儿童预防接种管理系统设计与实现-计算机毕业设计源码+LW文档

开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&…

且看五年开发码农,如何备战仨月硬刚字节面试官,轻松拿offer

写在前面 前不久跟几个哥们儿在一起吃喝玩闹,因为都是程序员出身,多少还是会谈谈各自公司的状况,其中一位朋友就是面临着跳槽换工作的情况。虽然做了好几年开发,但还是有很大压力,不光因为此次是想进字节跳动&#xf…

变更控制委员会CCB

在实施整体变更控制过程中,每项记录在案的变更请求都必须由一位责任人批准或否决,这个责任人通常是项目发起人或项目经理。应该在项目管理计划或组织流程中指定这位责任人。必要时,应该由变更控制委员会(CCB)来开展实施…

vue中keep-alive的作用

vue中keep-alive的作用1、什么是keep-alive?2、作用3、使用场景4、基本使用4.1、所有组件都缓存4.2、include:只有包裹的组件名被缓存4.3、exclude:只有包裹的组件名不会被缓存4.4、max:组件最多缓存的数量4.5、结合路由router,缓…

CUDA编程基础:线程标识符计算,以及并行运算原理

1,CUDA编程的基本概念 对于一个2-dim的block(D_x, D_y) ,既指的是二维的平面的block模型; gridDim: 这个变量包含网格的维度 blockIdx: 这个变量包含了网格中的线程块索引(0~gridDim-1) blockDim: 这个变量包含了线程块的维度 threadIdx: 这个变量包含了线程块中的线程索引(…

机器人——力控

力控制背后的基本思想很简单:传感器的输出用于在控制器中闭环,调整每个关节扭矩以匹配所需的输出。在某种程度上,这类似于位置控制。您只需用参考力(来自力/扭矩传感器)替换参考位置(来自电机编码器&#x…

java程序设计笔记 -- 继承与多态

继承与多态 子类 is a 关系 整体与部分 has a extends 继承关键词 父类也叫做 超类 基类 object 类 类层次最高点,是所有类的直接或间接父类 方法 public final Class getClass(): 获取当前对象所属的类信息,返回Class对象public Strig toString (…

计划评审技术

计划评审技术就是把工程项目当成一种系统,用网络图或者表格或者矩阵来表示各项具体工作的先后顺序和相互关系,以时间为中心,找出从开工到完工所需要时间的最长路线,并围绕关键路线对对系统进行统筹规划,合理安排以及对…

python--数据容器--列表

目录 1.python中的数据容器: 2.列表的定义 列表的下标索引 列表的查询功能 (方法) 修改列表的值 在指定位置插入元素 追加元素 追加一批元素 删除元素 删除某个元素在列表中的第一个匹配项 清空列表 统计某元素在列表内的数量 统…

ChIP-Seq,MeRIP-seq峰(peak),eccDNA等染色体分布可视化

人类基因组由1-22、X、Y等染色体构成,染色体经过细胞学处理后会呈现出深浅不同的染色带。 染色带的数目、部位、宽窄和着色深浅均相对稳定性,所以每一条染色体都有固定的分带模式,即称带型。 染色体带型是鉴别染色体的重要依据。图1. 人类染色…

【Android进阶】8、单 Activity-多 Fragment 模式 与 Fragment 的管理器

文章目录8.1 UI的灵活需求8.2 Fragment8.3 Fragment实战8.4 创建数据类8.5 创建 UI fragment8.5.1 定义 CrimeFragment 布局8.5.2 创建 CrimeFragment 类8.5.2.1 实现 Fragment 的生命周期函数8.5.2.2 在 Fragment 中实例化部件8.6 让 Activity 托管 Fragment8.6.1 定义 Activi…

Linux网络编程基础<多进程并发服务器>

一、应用场景 最简单的socket示列代码只能一个客户端连接一个服务器,并不支持多个客户端对服务器的连接,为了能让多个客户端进行连接所以需要多进程或者多线程处理 二、思路解析 服务器端的程序是俩个套接字socket创建一个lfd,accept创建一…

外置编码矩阵神经网络all you need

🍿*★,*:.☆欢迎您/$:*.★* 🍿 目录 背景 正文 总结 背景描述

数据结构刷题:第十三天

目录 一,二叉搜索树中的搜索 1,递归 复杂度分析 2,迭代 复杂度分析 二,二叉搜索书中的插入操作 1,模拟 思路与算法 复杂度分析 一,二叉搜索树中的搜索 700. 二叉搜索树中的搜索 - 力扣(L…

阿里P8大佬,整理的从零构建企业级容器集群实战笔记,真涨薪神器

前言 微服务架构时代对我们的基础设施管理提出了非常大的挑战,DevOps和持续交付成为了基本能力要求。没有近两年容器技术的快速发展,这些能力可能仍然只属于少数技术实力强大的互联网公司。容器技术的应用从真正意义上催化了我们在基础设施管理上的革命…

最小系统板 STM32入门,呼吸灯实现(STM32F103C6T6)

Hi, I’m Shendi 接着前一篇 https://blog.csdn.net/qq_41806966/article/details/126894938 这一次使用库来进行 LED 灯的开关,及延时的实现 呼吸灯实现 之前使用直接修改地址的方式实现点灯,这次用 GPIO 实现点灯,并加上延迟&#xff0…

傅立叶及其python应用

前言 本文是傅立叶及其python应用系列的第三篇文章对应的仓库地址为https://github.com/yuanzhoulvpi2017/tiny_python/tree/main/Fourier_Series 介绍 第二篇主要介绍了傅立叶的核心:“傅里叶级数就是函数在某个函数空间中各个基底的投影和“,然后基…