31-Pandas index操作索引

Pandas index操作索引

索引(index)是 Pandas 的重要工具,通过索引可以从 DataFame 中选择特定的行数和列数,这种选择数据的方式称为“子集选择”。

在 Pandas 中,索引值也被称为标签(label),它在 Jupyter 笔记本中以粗体字进行显示。索引可以加快数据访问的速度,它就好比数据的书签,通过它可以实现数据的快速查找。

创建索引

通过示例对 index 索引做进一步讲解。下面创建一个带有 index 索引的数据,并使用 read_csv() 这些读取数据:

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
print(df)

输出结果:

    EMPNO   ENAME        JOB     MGR    HIREDATE   SAL    COMM  DEPTNO
0    7369   SMITH      CLERK  7902.0  1980-12-17   800     NaN      20
1    7499   ALLEN   SALESMAN  7698.0  1981-02-20  1600   300.0      30
2    7521    WARD   SALESMAN  7698.0  1981-02-22  1250   500.0      30
3    7566   JONES    MANAGER  7839.0  1981-04-02  2975     NaN      20
4    7654  MARTIN   SALESMAN  7698.0  1981-09-28  1250  1400.0      30
5    7698   BLAKE    MANAGER  7839.0  1981-05-01  2850     NaN      30
6    7782   CLARK    MANAGER  7839.0  1981-06-09  2450     NaN      10
7    7788   SCOTT    ANALYST  7566.0  1987-04-19  3000     NaN      20
8    7839    KING  PRESIDENT     NaN  1981-11-17  5000     NaN      10
9    7844  TURNER   SALESMAN  7698.0  1981-09-08  1500     0.0      30
10   7876   ADAMS      CLERK  7788.0  1987-05-23  1100     NaN      20
11   7900   JAMES      CLERK  7698.0  1981-12-03   950     NaN      30
12   7902    FORD    ANALYST  7566.0  1981-12-03  3000     NaN      20
13   7934  MILLER      CLERK  7782.0  1982-01-23  1300     NaN      10

通过列索引(标签)读取多列数据。

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")

print('读取EMPNO、ENAME、JOB、MGR:\n',df[['EMPNO','ENAME','JOB','MGR']])
# 或使用loc函数
#print('读取EMPNO、ENAME、JOB、MGR:\n',df.loc[:,['EMPNO','ENAME','JOB','MGR']])

输出结果:

读取EMPNO、ENAME、JOB、MGR:
     EMPNO   ENAME        JOB     MGR
0    7369   SMITH      CLERK  7902.0
1    7499   ALLEN   SALESMAN  7698.0
2    7521    WARD   SALESMAN  7698.0
3    7566   JONES    MANAGER  7839.0
4    7654  MARTIN   SALESMAN  7698.0
5    7698   BLAKE    MANAGER  7839.0
6    7782   CLARK    MANAGER  7839.0
7    7788   SCOTT    ANALYST  7566.0
8    7839    KING  PRESIDENT     NaN
9    7844  TURNER   SALESMAN  7698.0
10   7876   ADAMS      CLERK  7788.0
11   7900   JAMES      CLERK  7698.0
12   7902    FORD    ANALYST  7566.0
13   7934  MILLER      CLERK  7782.0

再看一组简单的示例:

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx",index_col='EMPNO')

print('读取ENAME、JOB、MGR:\n',df[['ENAME','JOB','MGR']])

输出结果:

读取EMPNO、ENAME、JOB、MGR:
         ENAME        JOB     MGR
EMPNO                           
7369    SMITH      CLERK  7902.0
7499    ALLEN   SALESMAN  7698.0
7521     WARD   SALESMAN  7698.0
7566    JONES    MANAGER  7839.0
7654   MARTIN   SALESMAN  7698.0
7698    BLAKE    MANAGER  7839.0
7782    CLARK    MANAGER  7839.0
7788    SCOTT    ANALYST  7566.0
7839     KING  PRESIDENT     NaN
7844   TURNER   SALESMAN  7698.0
7876    ADAMS      CLERK  7788.0
7900    JAMES      CLERK  7698.0
7902     FORD    ANALYST  7566.0
7934   MILLER      CLERK  7782.0

设置索引

set_index() 将已存在的列标签设置为 DataFrame 行索引。除了可以添加索引外,也可以替换已经存在的索引。比如您也可以把 Series 或者一个 DataFrme 设置成另一个 DataFrame 的索引。示例如下:

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
print('读取ENAME、JOB、MGR:\n',df[['EMPNO','ENAME','JOB','MGR']].set_index(['EMPNO']))

输出结果:

读取ENAME、JOB、MGR:
         ENAME        JOB     MGR
EMPNO                           
7369    SMITH      CLERK  7902.0
7499    ALLEN   SALESMAN  7698.0
7521     WARD   SALESMAN  7698.0
7566    JONES    MANAGER  7839.0
7654   MARTIN   SALESMAN  7698.0
7698    BLAKE    MANAGER  7839.0
7782    CLARK    MANAGER  7839.0
7788    SCOTT    ANALYST  7566.0
7839     KING  PRESIDENT     NaN
7844   TURNER   SALESMAN  7698.0
7876    ADAMS      CLERK  7788.0
7900    JAMES      CLERK  7698.0
7902     FORD    ANALYST  7566.0
7934   MILLER      CLERK  7782.0

重置索引

您可以使用 reset_index() 来恢复初始行索引,示例如下:

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
print('读取ENAME、JOB、MGR:\n',df[['EMPNO','ENAME','JOB','MGR']].set_index(['EMPNO']))
print('重置后的索引:\n',df[['EMPNO','ENAME','JOB','MGR']].reset_index())

输出结果:

读取ENAME、JOB、MGR:
         ENAME        JOB     MGR
EMPNO                           
7369    SMITH      CLERK  7902.0
7499    ALLEN   SALESMAN  7698.0
7521     WARD   SALESMAN  7698.0
7566    JONES    MANAGER  7839.0
7654   MARTIN   SALESMAN  7698.0
7698    BLAKE    MANAGER  7839.0
7782    CLARK    MANAGER  7839.0
7788    SCOTT    ANALYST  7566.0
7839     KING  PRESIDENT     NaN
7844   TURNER   SALESMAN  7698.0
7876    ADAMS      CLERK  7788.0
7900    JAMES      CLERK  7698.0
7902     FORD    ANALYST  7566.0
7934   MILLER      CLERK  7782.0
重置后的索引:
     index  EMPNO   ENAME        JOB     MGR
0       0   7369   SMITH      CLERK  7902.0
1       1   7499   ALLEN   SALESMAN  7698.0
2       2   7521    WARD   SALESMAN  7698.0
3       3   7566   JONES    MANAGER  7839.0
4       4   7654  MARTIN   SALESMAN  7698.0
5       5   7698   BLAKE    MANAGER  7839.0
6       6   7782   CLARK    MANAGER  7839.0
7       7   7788   SCOTT    ANALYST  7566.0
8       8   7839    KING  PRESIDENT     NaN
9       9   7844  TURNER   SALESMAN  7698.0
10     10   7876   ADAMS      CLERK  7788.0
11     11   7900   JAMES      CLERK  7698.0
12     12   7902    FORD    ANALYST  7566.0
13     13   7934  MILLER      CLERK  7782.0

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

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

相关文章

QT Creator生成uml类图

先说方法,使用Doxygen工具,笔者用的虚拟机linux系统下的qt5.7,没找到自带的uml生成类的工具。 1、Doxygen 安装 在 Ubuntu 系统中,执行下面命令安装 doxygen 和 graphviz 软件包。 sudo apt install graphviz # 用于生成代码…

等保2.0 实施方案之信息软件验证要求

一、等保2.0背景及意义 随着信息技术的快速发展和网络安全威胁的不断演变,网络安全已成为国家安全、社会稳定和经济发展的重要保障。等保2.0(即《信息安全技术 网络安全等级保护基本要求》2.0版本)作为网络安全等级保护制度的最新标准&#x…

Gradle学习-5 发布二进制插件

注:以下示例基于Gradle8.0 1、发布插件 复制一分 buildSrc,执行命令行,生成一个新目录 leon-gradle-plugin cp -rf buildSrc leon-gradle-plugin在 leon-gradle-plugin 目录下的 build.gradle 中引入maven plugins{// 引用 Groovy 插件&…

【热部署】✈️Springboot 项目的热部署实现方式

目录 🍸前言 🍻一、热部署和手动重启 🍺二、热部署的实现 2.1 手动启动热部署 2.2 自动检测热部署 2.3 关闭热部署 💞️三、章末 🍸前言 小伙伴们大家好,书接上文,通过Springboot 中的 actu…

解析Kotlin中扩展函数与扩展属性【笔记摘要】

1.扩展函数 1.1 作用域:扩展函数写的位置不同,作用域就也不同 扩展函数可以写成顶层函数(Top-level Function),此时它只属于它所在的 package。这样你就能在任何类里使用它: package com.rengwuxianfun …

zabbix“专家坐诊”第244期问答

问题一 Q:请教一下,我的zabbix6.0配置的基于snmptrap上报的日志提取关键字推送告警,正则表达式能否帮忙看看怎么弄?我这配置的提示一直不正确? A:具体看一下这里的信息。 Q:这个我是直接复制的…

如何计算弧线弹道的落地位置

1)如何计算弧线弹道的落地位置 2)Unity 2021 IL2CPP下使用Protobuf-net序列化报异常 3)编译问题,用Mono可以,但用IL2CPP就报错 4)Wwise的Bank在安卓上LoadBank之后,播放没有声音 这是第393篇UWA…

ssm旅游信息分享网站-计算机毕业设计源码92194

目录 1 绪论 1.1 研究背景 1.2研究意义 1.3论文结构与章节安排 2 旅游信息分享网站分析 2.1 可行性分析 2.2 系统功能分析 2.3 系统用例分析 2.4 系统流程分析 2.5本章小结 3 旅游信息分享网站总体设计 3.1 系统功能模块设计 3.2 数据库设计 3.4本章小结 4 旅游信…

从全连接到卷积

一、全连接到卷积 1、卷积具有两个原则: 平移不变性:无论作用在哪个部分,它都要有相同的作用,而不会随着位置的改变而改变 局部性:卷积核作用处,作用域应该是核作用点的周围一小部分而不作用于更大的部分 …

一篇文章搞懂弹性云服务器和轻量云服务器的区别

前言 在众多的云服务器类型中,弹性云服务器和轻量云服务器因其各自的特点和优势,受到了广大用户的青睐。那么,这两者之间到底有哪些区别呢?本文将为您详细解析。 弹性云服务器:灵活多变的计算资源池 弹性云服务器&…

【计算机体系结构】缓存的false sharing

在介绍缓存的false sharing之前,本文先介绍一下多核系统中缓存一致性是如何维护的。 目前主流的多核系统中的缓存一致性协议是MESI协议及其衍生协议。 MESI协议 MESI协议的4种状态 MESI协议有4种状态。MESI是4种状态的首字母缩写,缓存行的4种状态分别…

CoAtNet(NeurIPS 2023, Google)论文解读

paper:CoAtNet: Marrying Convolution and Attention for All Data Sizes third-party implementation:https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/maxxvit.py 背景 自AlexNet以来,ConvNets一直是计算机…

【接口自动化测试】第四节.实现项目核心业务的单接口自动化测试

文章目录 前言一、登录单接口自动化测试 1.1 登录单接口文档信息 1.2 登录成功 1.3 登录失败(用户名为空)二、数据驱动的实现 2.1 json文件实现数据驱动三、课程添加单接口自动化测试 3.1 课程添加单接口文档信息 3.2 课程…

N5 使用Gensim库训练Word2Vec模型

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊# 前言 前言 这周学习训练一个Word2Vec模型,并进行一些基本的词向量操作。 Word2Vec 模型 Word2Vec 是一种基于神经网络的词向量表示方法&#x…

Qt Q_ASSERT详解

Q_ASSERT详解 引言一、基本用法二、深入了解三、参考链接 引言 Q_ASSERT是 Qt 框架中的一个宏,用于在调试时检查某个条件是否为真。它是程序调试中的一个重要工具,有助于开发者在开发过程中及时发现并修复潜在的错误。 一、基本用法 只在使用 Qt 的 D…

API 授权最佳实践

API(应用程序编程接口)就像秘密之门,允许不同的软件程序进行通信。但并不是每个人都应该拥有每扇门的钥匙,就像不是每个软件都应该不受限制地访问每个 API 一样。 这些 API 将从银行的移动应用程序到您最喜欢的社交媒体平台的所有…

嵌入式C语言中指针与链表的关系详解

假定给你一块非常小的内存,这块内存只有8字节,这里也没有高级语言,没有操作系统,你操作的数据单位是单个字节,你该怎样读写这块内存呢? 注意这里的限定,再读一遍,没有高级语言,没有操作系统,在这样的限制之下,你必须直面内存读写的本质。 这个本质是什么呢? 本质…

Vuex的基本使用

1.安装vuex npm i vuex3 2.引入 import Vuex from vuex 3.使用 Vue.use(Vuex) 4.在src下的目录创建store,新建index.js import store from ./store 5.编写index.js import Vue from vue import Vuex from vuex Vue.use(Vuex)//用于操作组件中的动作 const actions{a…

Linux安装Node-RED并实现后台运行及开机启动

首先确保系统中已近成功安装Node.js,并保证需要的合适版本: 关于node.js的安装可以参考我的另一篇博文:《AliyunOS安装Node.js》。 然后就可以使用npm工具安装Node-RED了,很简单使用如下命令: sudo npm install -g --unsafe-per…

antd Select前端加模糊搜索

背景&#xff1a;前端的小伙伴经常在开发antd Select的时候后端不提供搜索模糊搜索接口&#xff0c;而是全量返回数据&#xff0c;这个时候就需要我们前端自己来写一个模糊搜索了。 效果 代码截图 代码 <SelectshowSearchmode"multiple"options{studioList}filte…