19 pandas 分层索引与计算

news/2024/7/8 2:07:45

文章目录

  • 分层设置与查询
    • 数据
    • index 为有序
    • index 为无序(中文)
      • 查看数据
      • 示例
  • 多层索引的创建方式(行)
    • 1、from_arrays 方法
    • 2、from_tuples 方法
    • 3、from_product 方法
  • 多层索引的创建方式(列)
  • 分层索引计算
  • MultiIndex 参数表

分层设置与查询

数据

在这里插入图片描述

index 为有序

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/多层索引.xlsx'
data =pd.read_excel(path,index_col=[0,1],sheet_name='有序')#设置分层索引
#data=data.set_index('班级','序号') #也可以这样设置分层索引
data2=data.loc[('1班',slice(None)),:] # 切片筛选
print(data2)

在这里插入图片描述

在这里插入图片描述

index 为无序(中文)

查看数据

在这里插入图片描述

示例

import pandas as pd
path='C:/Users/Admin/Desktop/pandas/多层索引.xlsx'
data =pd.read_excel(path,sheet_name='无序')#设置分层索引
data=data.set_index('科目','分数')# 设置分层索引
data2=data.sort_index(level='科目')
data2=data.loc[('语文',slice(None))]
print(data2)

在这里插入图片描述

多层索引的创建方式(行)

在这里插入图片描述

1、from_arrays 方法

在这里插入图片描述

import pandas as pd
多层索引 = pd.MultiIndex.from_arrays([['a', 'a', 'b', 'b'], [1, 2, 1, 2]],names=['x','y'])
print(多层索引)

在这里插入图片描述

2、from_tuples 方法

在这里插入图片描述

import pandas as pd
多层索引 = pd.MultiIndex.from_tuples([('a',1),('a',2),('b',1),('b',2)],names=['x','y']) 
print(多层索引)

3、from_product 方法

在这里插入图片描述

import pandas as pd
多层索引 = pd.MultiIndex.from_product([['a', 'b'], [1, 2]],names=['x','y'])
print(多层索引)

在这里插入图片描述
在这里插入图片描述

多层索引的创建方式(列)

import pandas as pd
import numpy as np
index = pd.MultiIndex.from_product([[2019, 2020], [5, 6]],names=['年', '月'])
columns = pd.MultiIndex.from_product([['香蕉', '苹果'], ['土豆', '茄子']],names=['水果', '蔬菜'])
数据 = pd.DataFrame(np.random.random(size=(4, 4)), index=index, columns=columns)  # 笔记3.2
print(数据)

在这里插入图片描述

分层索引计算

在这里插入图片描述

import pandas as pd
路径='C:/Users/Admin/Desktop/pandas/销售.xlsx'
数据 = pd.read_excel(路径,header=[0,1]) # 设置前2行是表头,笔记2.1.2
# print(数据.columns)
# 结果1 = 数据[('土豆', '销量')]+数据[('倭瓜', '销量')] # 通过两层索引相加
# print(结果1)
# 结果2 = 数据['土豆'] +数据['倭瓜'] # 通过第一层索引相加
# print(结果2)
总计 = 数据['土豆']+数据['倭瓜']
# print(总计) # 单层索引与多层索引无法拼接
总计.columns = pd.MultiIndex.from_product([['合计'],总计.columns])
# print(总计)
结果 =pd.concat([数据,总计],axis=1)  # 横向拼接,笔记4.3.3
print(结果)

在这里插入图片描述

在这里插入图片描述

MultiIndex 参数表

在这里插入图片描述


http://lihuaxi.xjx100.cn/news/903447.html

相关文章

Linux下的Jenkins安装教程

当前环境 CentOS 7.8Java 11(注意当前jenkins支持的Java版本最低为Java11)FinalShell 3.9(操作环境) 安装Jenkins PS:不建议使用Docker安装Jenkins,因为使用Jenkins的时候一般会调用外部程序,…

RabbitMQ 入门到应用 ( 五 ) 应用

6.更多应用 6.1.AmqpAdmin 工具类 可以通过Spring的Autowired 注入 AmqpAdmin 工具类 , 通过这个工具类创建 队列, 交换机及绑定 import org.springframework.amqp.core.AmqpAdmin; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.Di…

华为OD机试 - 静态扫描最优成本(JS)

静态扫描最优成本 题目 静态扫描快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出: 文件扫描的成本和文件大小相关,如果文件大小为 N ,则扫描成本为 N 个金币扫描报告的缓存成本和文件大小无关,每缓存一个报告需要 M 个金币扫描报告缓存后,后继再碰到该文件则不…

linux018之安装mysql

linux上安装mysql: 第一步:查看是否已经安装mariadb,mariadb是mysql数据库的分支,mariadb和mysql一起安装会有冲突,所以需要卸载掉。 yum list installed | grep mariadb :查看是否安装mariadb,…

适合初学者的超详细实用调试技巧(上)

我们日常写代码的时候,常常会遇到bug的情况,这个时候像我这样的初学者就会像无头苍蝇一样这里改改那里删删,为了根除这种情况,我最近系统学习了调试的技巧,我想要十分详细地讲解,所以大概不会一篇文章写完。…

169、【动态规划】leetcode ——123. 买卖股票的最佳时机 III:二维数组+一维数组 (C++版本)

题目描述 原题链接:123. 买卖股票的最佳时机 III 解题思路 (1)二维dp数组 动态规划五步曲: (1)dp数组含义: dp[i][0],表示无操作。主要由四个状态来表示四种操作。dp[i][1]&…

手机文字转语音软件哪个好用?超火的两款好用的文字转语音软件

有很多小伙伴对短视频配音比较感兴趣,但方方面面了解得不多,比如:配音有哪几种方法?需要注意些什么?用手机就可以操作么?好用的文字转语音软件有哪些?这篇文,小编就带大家简单了解一…

存储类别、链接与内存管理(三)

1、malloc函数详解 &#xff08;1&#xff09;函数声明 #include <stdlib.h> void* malloc(size_t size);malloc可以申请一定数量的空闲内存&#xff0c;这样的内存是匿名的&#xff0c;也就是malloc不会为其赋名&#xff0c;但是确实返回动态分配内存块的首元素地址&a…