Pandas 创建层次化索引

news2024/11/20 15:21:50

1.创建多层次索引

1.1 隐式构造

  • 最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组

# 导入pandasimport numpy as npimport pandas as pddata = np.random.randint(0,100,size=(6,6))# 行索引index = [    ["1班","1班","1班","2班","2班","2班"],    ["张三","李四","王五","鲁班","张三丰","张无忌"]]# 列索引columns = [    ["期中","期中","期中","期末","期末","期末"],    ["语文","数学","英语","语文","数学","英语"]]df = pd.DataFrame(data=data,index=index,columns=columns)df

期中期末
语文数学英语语文数学英语
1班张三405130165745
李四74457048751
王五574535252276
2班鲁班938069311729
张三丰903836775630
张无忌355079453876
  • Series也可以创建多层索引

data = np.random.randint(0,100,size=6)index = [    ["1班","1班","1班","2班","2班","2班"],    ["张三","李四","王五","鲁班","张三丰","张无忌"]]s = pd.Series(data=data,index=index)s
1班  张三      7
    李四      9
    王五     57
2班  鲁班     88
    张三丰    36
    张无忌     5
dtype: int32

1.2 显式构造pd.MultiIndex

  • 使用数组

data = np.random.randint(0,100,size=(6,6))# 行索引index = pd.MultiIndex.from_arrays([    ["1班","1班","1班","2班","2班","2班"],    ["张三","李四","王五","鲁班","张三丰","张无忌"]])# 列索引columns = [    ["期中","期中","期中","期末","期末","期末"],    ["语文","数学","英语","语文","数学","英语"]]df = pd.DataFrame(data=data,index=index,columns=columns)df

期中期末
语文数学英语语文数学英语
1班张三56070165465
李四119994668251
王五37167148272
2班鲁班393365697768
张三丰53152399797
张无忌53301895736

  • 使用tuple

data = np.random.randint(0,100,size=(6,6))# 行索引index = pd.MultiIndex.from_tuples(    (        ("1班","张三"),("1班","李四"),("1班","王五"),        ("2班","鲁班"),("2班","张三丰"),("2班","张无忌")    ))# 列索引columns = [    ["期中","期中","期中","期末","期末","期末"],    ["语文","数学","英语","语文","数学","英语"]]df = pd.DataFrame(data=data,index=index,columns=columns)df

期中期末
语文数学英语语文数学英语
1班张三278920751
李四756058795015
王五374756435955
2班鲁班412543714637
张三丰665352215391
张无忌292622495624

  • 使用product

笛卡尔积:{a,b}{c,d} ==> {a,c},{a,d},{b,c},{b,d}

data = np.random.randint(0,100,size=(6,6))# 行索引index = pd.MultiIndex.from_product([    ["1班","2班"],    ["张三","李四","王五"]])# 列索引columns = [    ["期中","期中","期中","期末","期末","期末"],    ["语文","数学","英语","语文","数学","英语"]]df = pd.DataFrame(data=data,index=index,columns=columns)df

期中期末
语文数学英语语文数学英语
1班张三75548352756
李四52631106384
王五6765964516
2班张三771010944173
李四863451501887
王五97391433845

2.多层列索引

除了行索引index,列索引columns也能用同样的方法创建多层索引

  • 使用数组

data = np.random.randint(0,100,size=(6,6))# 行索引index = pd.MultiIndex.from_arrays([    ["1班","1班","1班","2班","2班","2班"],    ["张三","李四","王五","鲁班","张三丰","张无忌"]])# 列索引columns = pd.MultiIndex.from_arrays([    ["期中","期中","期中","期末","期末","期末"],    ["语文","数学","英语","语文","数学","英语"]])df = pd.DataFrame(data=data,index=index,columns=columns)df

期中期末
语文数学英语语文数学英语
1班张三205872666271
李四672263461621
王五34921517430
2班鲁班18972455086
张三丰582417324952
张无忌503326384182

  • 使用tuple

data = np.random.randint(0,100,size=(6,6))# 行索引index = pd.MultiIndex.from_tuples(    (        ("1班","张三"),("1班","李四"),("1班","王五"),        ("2班","鲁班"),("2班","张三丰"),("2班","张无忌")    ))# 列索引columns = pd.MultiIndex.from_tuples(    (        ("期中","语文"),("期中","数学"),("期中","英语"),        ("期末","语文"),("期末","数学"),("期末","英语")    ))df = pd.DataFrame(data=data,index=index,columns=columns)df

期中期末
语文数学英语语文数学英语
1班张三5537667064
李四38327979782
王五804956513219
2班鲁班366881133573
张三丰945694451534
张无忌78593572465

  • 使用product

data = np.random.randint(0,100,size=(6,6))# 行索引index = pd.MultiIndex.from_product([    ["1班","2班"],    ["张三","李四","王五"]])# 列索引columns = pd.MultiIndex.from_product([    ["期中","期末"],    ["语文","数学","英语"]])df = pd.DataFrame(data=data,index=index,columns=columns)df

期中期末
语文数学英语语文数学英语
1班张三1181749472
李四413322753677
王五428228218457
2班张三1864904180
李四249966923425
王五28411628536

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java+原生HTML+ WebSocket+MySQL云HIS信息管理系统源码 支持一体化电子病历四级

Java原生HTML WebSocketMySQL云HIS信息管理系统源码 支持一体化电子病历四级 云HIS电子病历系统是一种基于云计算技术的医疗信息管理系统,旨在实现医疗信息的数字化、标准化和共享化。该系统通过云计算平台,将医院内部的各个业务模块(如门诊、…

buu[HCTF 2018]WarmUp(代码审计)

buu[HCTF 2018]WarmUp&#xff08;代码审计&#xff09; 题目 访问source.php <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php…

【吊打面试官系列】Java高并发篇 - ReadWriteLock 是什么 ?

大家好&#xff0c;我是锋哥。今天分享关于 【ReadWriteLock 是什么 &#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; ReadWriteLock 是什么 &#xff1f; 首先明确一下&#xff0c;不是说 ReentrantLock 不好&#xff0c;只是 ReentrantLock 某些时候有局限。 …

Hadoop+Spark大数据技术 实验8 Spark SQL结构化

9.2 创建DataFrame对象的方式 val dfUsers spark.read.load("/usr/local/spark/examples/src/main/resources/users.parquet") dfUsers: org.apache.spark.sql.DataFrame [name: string, favorite_color: string ... 1 more field] dfUsers.show() -----------…

【传知代码】掩码自回归编码器法(论文复现)

前言&#xff1a;在探索现代数据科学的前沿领域时&#xff0c;掩码自回归编码器法&#xff08;Masked Autoencoder&#xff0c;简称MAE&#xff09;无疑是一个引人注目的亮点。这一技术&#xff0c;凭借其独特的训练机制和卓越的性能&#xff0c;已经在图像识别、自然语言处理以…

K8s 搭建 FileBeat+ELK 分布式日志收集系统 以及 KQL 语法介绍

一、K8s FileBeat ELK 介绍 ELK&#xff0c;即Elasticsearch、Logstash和Kibana三个开源软件的组合&#xff0c;是由Elastic公司提供的一套完整的日志管理解决方案。Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎&#xff0c;它允许你快速地、近乎实时地存储、搜索…

PCB设计——返回路径

回流基本概念 从电路理论上看&#xff0c;信号是由电流传播的&#xff0c;明确的说是电子的运动&#xff0c;电子流的特性之一就是电子从不在任何地方停留&#xff0c;无论电流流到哪里&#xff0c;必然要回来&#xff0c;因此电流总是在环路中流动&#xff0c;从源到负载然后从…

高效使用 LaTeX 技巧

但对于一般人而言&#xff0c;你不需要通过学习 Vim 来达到高效编辑 LaTeX 的方式。而是通过一些比较容易实现的方式&#xff0c;使得你能够在原来的基础上更加高效得使用 LaTeX&#xff0c;并达到以思考的速度输入 LaTeX 的方式。 在第一部分&#xff0c;我会首先介绍高效编辑…

1301-习题1-1高等数学

1. 求下列函数的自然定义域 自然定义域就是使函数有意义的定义域。 常见自然定义域&#xff1a; 开根号 x \sqrt x x ​&#xff1a; x ≥ 0 x \ge 0 x≥0自变量为分式的分母 1 x \frac{1}{x} x1​&#xff1a; x ≠ 0 x \ne 0 x0三角函数 tan ⁡ x cot ⁡ x \tan x \cot x …

告别登录烦恼,WPS免登录修改器体验!(如何实现不登录使用WPS)

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f3e1; 演示环境 &#x1f3e1;&#x1f4d2; 解决方案 &#x1f4d2;&#x1f388; 获取方式 &#x1f388;⚓️ 相关链接 ⚓️ &#x1f4d6; 介绍 &#x1f4d6; 想象一下&#xff0c;如果你能够绕过繁琐的登录流程&#x…

探秘机器学习经典:K-近邻算法(KNN)全解析

在浩瀚的机器学习宇宙中,K-近邻算法(K-Nearest Neighbors,简称KNN)如同一颗璀璨的明星,以其简洁直观的原理和广泛的应用范围,赢得了众多数据科学家的喜爱。今天,让我们一起揭开KNN的神秘面纱,深入探讨它的运作机制、优缺点、应用场景,以及如何在实际项目中灵活运用。 …

从零到一建设数据中台 - 数据治理路径

一、数据治理的内容 数据治理用于规范数据的生成以及使用,改进数据质量,对数据进行加工处理,提升数据价值。提供识别和度量数据质量能力、数据清洗转换能力、数据加工三个核心能力。 数据汇集:数据汇集是数据中台数据接入的入口,所有数据来自于业务系统、日志、文件、网络…

JDBC总结

目录 JDBC(java database connection) JDBC连接数据库步骤: 1. 在项目中添加jar文件,如图所示 2.加载驱动类 向数据库中插入数据代码示例: 第一种: 第二种: 查询操作 : 第一种: 第二种: JDBC(java database connection) java数据库连接.api(应用程序编程接口) ,可…

esp32开发中CMakeLists.txt文件在编译时添加打印信息

在使用CMakeLists.txt文件时&#xff0c;我们时常会对一些宏定义表示的具体路径表示迷茫&#xff0c;不太确定具体表示的路径是哪个&#xff0c;这个时候就希望能在编译的时候打印当前文件中使用的宏定义表示的路径的具体信息。 就像下图中&#xff0c;编译时打印出 CMAKE_CU…

牛客NC391 快乐数【simple 模拟法 Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/293b9ddd48444fa493dd17da0feb192d 思路 直接模拟即可Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值…

serverless在点淘的质量保障实践

SERVERLESS能够将应用分为研发域和运维域&#xff0c;使两者独立迭代&#xff0c;降低运维成本&#xff0c;提升研发效率。点淘作为试点项目&#xff0c;经历了包括功能回归、压力测试和监控验证在内的质量保障流程&#xff0c;并在实践中遇到了各种问题&#xff0c;如依赖梳理…

VOS3000被DDOS攻击后该怎么办

VOS3000遭受DDoS攻击的应对措施 当VOS3000遭受DDoS攻击时&#xff0c;可以采取以下几个步骤来应对&#xff1a; 立即启动防火墙&#xff1a;尽管难以完全阻止DDoS攻击&#xff0c;但防火墙可以在一定程度上帮助抵御攻击&#xff0c;减轻其造成的危害。 联系服务器提供商&#…

抖音小店新规重磅来袭!事关店铺流量!商家的福音来了?

大家好&#xff0c;我是喷火龙。 就在前两天&#xff0c;抖店发布了新规&#xff0c;我给大家总结了一下&#xff0c;无非就是两点。 第一点&#xff1a;保证金下调&#xff0c;一证开多店。 第二点&#xff1a;新品上架破10单&#xff0c;有流量扶持。 咱来细细的解读&…

人生苦短,我学python之数据类型(下)

个人主页&#xff1a;星纭-CSDN博客 系列文章专栏&#xff1a;Python 踏上取经路&#xff0c;比抵达灵山更重要&#xff01;一起努力一起进步&#xff01; 目录 一.集合 1.1子集与超集 1.2交集&#xff0c;并集&#xff0c;补集&#xff0c;差集 1.intersection(英文&a…

学习笔记——STM32F103V3版本——HC-05模块控制数码管

一.硬件 1.HC-05模块 2.数码管 3.连接硬件 二.在keil5中的代码 main.c代码&#xff1a; #include "stm32f10x.h" #include "buletooth.h" #include "led.h" #include "sys.h" #include "usart.h" #include "delay.…