pandas索引

pandas索引

  • 一、索引
    • 1.1 建立索引
    • 1.2 重置索引
    • 1.3 索引类型
    • 1.4 索引的属性
    • 1.5 索引的操作

一、索引

1.1 建立索引

建立索引可以在数据读取加载中指定索引:

import pandas as pd
df = pd.read_excel('team.xlsx', index_col='name')    # 将name列设置为索引
df.head()

效果如下:
在这里插入图片描述
如果在读取数据时没有设置索引,可以使用df.set_index()指定:

df = pd.read_excel('team.xlsx')
df.set_index('name', inplace=True)

如果需要,还可以设置两层索引:

df.set_index(['name', 'team'])    # 设置两层索引
df.set_index([df.name.str[0], 'name'])    # 将姓名的第一个字母和姓名设置为索引

以下为其他两个常用的操作:

df.set_index('team', drop=False)    # 保留原列
df.set_index('team', append=True)    # 保留原来的索引

1.2 重置索引

有时我们想取消已有的索引,可以使用df.reset_index(),它的操作与set_index相反。以下是一些常用的操作:

df.reset_index()    # 清除索引
df.set_index('name').reset_index()    # 相当于什么也没做
# year一级索引取消
df.set_index(['month', 'year']).reset_index(level=1)
df.reset_index(level='year')    # 同上,使用层级索引名

1.3 索引类型

为了适应各种业务数据的处理,索引又针对各种类型数据定义了不同的索引类型。
数字索引共有以下几种:
1、RangeIndex(单调整数范围的不可变索引)。pd.RangeIndex(1,100,2);
2、Int64Index(64位整形索引)。pd.Int64Index([1, 2, 3, 4], name=‘num’);
3、UInt64Index:无符号整数索引。pd.UInt64Index([1, 2, 3, 4]);
4、Float64Index:64位浮点型索引。pd.Float64Index([1.2, 2.4, 4, 6])

1.4 索引的属性

以下方法可以查询索引的属性,同样使用与df.columns,因为他们都是index对象。

df.index.name    # 名称
df.index.array    # array数组
df.index.dtype    # 数据类型
df.index.shape    # 形状
df.index.size    # 元素数量
df.index.values    # array数组

1.5 索引的操作

以下是索引的常用操作,同样适用于df.columns。

df.index.astype('int64')    # 转换类型
df.index.isin()    # 是否存在
df.index.rename('number')    # 修改索引名称
df.index.nunique()    # 不重复值的数量
df.index.sort_values(ascending=False)    # 倒序排序
df.index.map(lambda x:x+'_')    # map函数处理
df.index.str.replace('_', '')    # str替换
df.index.to_list()    # 转换为列表
df.index.to_frame(index=False, name='a')    # 转成DataFrame
df.index.to_series()    # 转成series
df.index.unique()    # 去重
df.index.value_counts()    # 去重及计数
df.index.where(df.index=='a')    # 筛选
df.index.max()    # 最大值

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

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

相关文章

C语言 函数的定义与调用

上文 C语言 函数概述 我们对函数进行了概述 本文 我们来说函数的定义和调用 C语言规定 使用函数之前,首先要对函数进行定义。 根据模块化程序设计思想,C语言的函数定义是互相平行、独立的,即函数定义不能嵌套 C语言函数定义 分为三种 有参函…

Kansformer?变形金刚来自过去的新敌人

​1.前言 多层感知器(MLPs),也被称为全连接前馈神经网络,是当今深度学习模型的基础组成部分。 MLPs在机器学习中扮演着至关重要的角色,因为它们是用于近似非线性函数的默认模型,这得益于通用近似定理所保证的表达能力。然而,MLPs真的是我们能构建的最佳非线性回归器吗?尽管ML…

鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

Hi3516标准系统入门(命令行方式) 注意: 从3.2版本起,标准系统不再针对Hi3516DV300进行适配验证,建议您使用RK3568进行标准系统的设备开发。 如您仍然需要使用Hi3516DV300进行标准系统相关开发操作,则可能会…

人工智能编程的创新探索 卧龙与凤雏的畅想

在一间宽敞明亮的办公室内,阳光透过窗户洒在地上,形成一片片光斑。卧龙和凤雏正坐在舒适的办公椅上休息,享受着这片刻的宁静。 卧龙微微皱眉,一只手托着下巴,略显苦恼地说道:“现在的人工智能,也…

vue2人力资源项目5组织架构的增删改查

编辑表单回显 父组件:这里用到了父亲调子组件的方法和同步异步先后方法的处理 //methods里else if (type edit) {this.showDialog true// 显示弹层this.currentNodeId id// 记录id,要用它获取数据// 在子组件中获取数据// 父组件调用子组件的方法来获…

【力扣】203、环形链表 II

142. 环形链表 II 要解决这道题,首先需要对问题进行拆解: 确定链表是否存在环确定环的入口点 如何判断是否存在环呢?这个比较容易想到,使用快慢指针即可判断链表是否存在环。我们定义两个指针: ListNode slow head…

Redis学习4——Redis应用之限流

引言 Redis作为一个内存数据库其读写速度非常快,并且支持原子操作,这使得它非常适合处理频繁的请求,一般情况下,我们会使用Redis作为缓存数据库,但处理做缓存数据库之外,Redis的应用还十分广泛&#xff0c…

远程服务器 docker XRDP 桌面访问 记录

需求描述: 我现在在远程连接 一台服务器,由于需要实验环境需要GUI 和 桌面系统,但是又想在 docker 中运行。因此,我现在首先需要通过 ssh 连接服务器,然后再服务器中连接 docker. REF: https://github.com/danielguerra69/ubuntu-…

代码随想录day19day20打卡

二叉树 1 二叉树的最大深度和最小深度 最大深度已经学习过了,实质就是递归的去判断左右子节点的深度,然后对其进行返回。 附加两个学习的部分: (1)使用前序遍历的方法求解 int result; void getdepth(TreeNode* nod…

NXP i.MX8系列平台开发讲解 - 3.11 Linux PCIe设备调试(WIFI模块)

专栏文章目录传送门:返回专栏目录 文章目录 目录 1. WIFI 模块简单介绍 2. 设备驱动原理介绍 3. PCIE WIFI驱动实例分析 3.1 查看设备树 3.2 wifi 设备驱动代码分析 3.3 内核配置选项 4. WIFI驱动调试相关 根据前面对PCIe的讲解,对PCIe的整体都有…

Ansible --- playbook 脚本+inventory 主机清单

一 inventory 主机清单 Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或 多个主机组内。 如果是名称类似的主机,可以使用列表的方式标识各个主机。vim /etc/ansible/hosts[webservers]192.168.10.1…

Flutter弹窗链-顺序弹出对话框

效果 前言 弹窗的顺序执行在App中是一个比较常见的应用场景。比如进入App首页,一系列的弹窗就会弹出。如果不做处理就会导致弹窗堆积的全部弹出,严重影响用户体验。 如果多个弹窗中又有判断逻辑,根据点击后需要弹出另一个弹窗,这…

C++ Primer 总结索引 | 第十四章:重载运算与类型转换

1、C语言定义了 大量运算符 以及 内置类型的自动转换规则 当运算符 被用于 类类型的对象时&#xff0c;C语言允许我们 为其指定新的含义&#xff1b;也能自定义类类型之间的转换规则 例&#xff1a;可以通过下述形式输出两个Sales item的和&#xff1a; cout << item1 …

信息系统安全与对抗-网络侦查技术与网络扫描技术(期末复习)

1、网络拓扑结构在网络攻击中的作用 查明目标网络的拓扑结构&#xff0c;有利于找到目标网络的关键节点&#xff0c;从而提高攻击效率&#xff0c;达到最大攻击效果。 2、网络侦查在网络攻击中的作用 识别潜在目标系统&#xff0c;确认目标系统适合哪种类型的攻击。 3、百度…

jenkins部署服务到windows系统服务器

1、安装openSSH windows默认不支持ssh协议&#xff0c;需要下载安装&#xff0c;主要适用于jenkins传输文件已经执行命令使用 点击查看下载openSSH 2、项目配置 这里简单说说怎么配置&#xff0c;主要解决点就是ssh执行cmd或shell命令时不能开启新窗口导致应用部署失败或者断…

【机器学习系统的构建】从模型开发的过程讲清楚K-Fold 交叉验证 (Cross-Validation)的原理和应用

0、前言 最近在学习集成学习的时候了解到了k折交叉验证&#xff0c;其实在之前学习吴恩达老师的课程中也学过交叉验证&#xff0c;但是当时也不是很明白。这次借着自己的疑问以及网上搜找资料&#xff0c;终于把交叉验证给弄明白了。 在弄清楚前&#xff0c;我有这样几个疑问…

rancher/elemental 构建不可变IOS(一)

一、什么是elemental Elemental 是 Rancher 的一个变种&#xff0c;专注于提供一个更轻量级的 Kubernetes 发行版。它旨在提供简化的部署和管理体验&#xff0c;同时保持 Kubernetes 的灵活性和强大功能。Elemental 通常针对较小的部署场景或资源受限的环境&#xff0c;例如测…

BFS Ekoparty 2022 -- Linux Kernel Exploitation Challenge

前言 昨天一个师傅给了我一道 linux kernel pwn 题目&#xff0c;然后我看了感觉非常有意思&#xff0c;题目也不算难&#xff08;在看了作者的提示下&#xff09;&#xff0c;所以就花时间做了做&#xff0c;在这里简单记录一下。这个题是 BFS Lab 2022 年的一道招聘题&#…

JavaEE技术之MySql高级-搭建主从复制(主从同步原理、一主多从配置)

文章目录 MySQL主从同步1、MySQL主从同步原理2、一主多从配置2.1、准备主服务器2.2、准备从服务器2.3、启动主从同步2.4、实现主从同步2.5、停止和重置2.6、常见问题问题1问题2 MySQL主从同步 1、MySQL主从同步原理 基本原理&#xff1a; slave会从master读取binlog来进行数据…

软件架构的艺术:探索演化之路上的18大黄金原则

实际工作表明&#xff0c;一步到位的设计往往不切实际&#xff0c;而演化原则指导我们逐步优化架构&#xff0c;以灵活响应业务和技术的变化。这不仅降低了技术债务和重构风险&#xff0c;还确保了软件的稳定性和可扩展性。同时&#xff0c;架构的持续演进促进了团队协作&#…