Pandas:sort_index、sort_values方法的使用

sort_index和sort_values既是Series类型数据自带的方法,也是DataFrame数据自带的方法。本篇博客以DataFrame为例进行讲述。

1 概览
sort_index和sort_values可以将DataFrame中的数据按照索引及值的大小进行排序。这两个方法所包含的参数及其作用都基本一致。如下表所示:

参数    作用
by    sort_values方法独有的参数;指定排序列名或索引;
level    sort_index方法独有的参数;指定排序索引所在的层级;
axis    指定排序的轴;
ascending    升序(True)或者降序(False);
inplace    是否本地置换,参考博客:Pandas和Numpy:常见函数参数inplace的作用_Sun_Sherry的 博客-CSDN博客_inplace函数
kind    指定排序算法:'quicksort', 'mergesort', 'heapsort', 'stable';
na_position    指定空值数据放置的位置:'first'、'last';
ignore_index    是否重新生成索引;新索引为0,1,……,
key    自定义排序方法;
sort_remaining    sort_index方法独有的参数;目前作用还不太明白

为了方便说明,先创建如下DataFrame变量:

其结果如下:

1.1 sort_index用法

顾名思义,sort_index可以将DataFrame按照索引的大小顺序重新排列。其用法如下:

data_1=data.sort_index(ascending=False,ignore_index=True)

其结果如下:

先将data按其索引的逆序排序重新进行排列,逆序排列后的索引顺序为:C2->B1->A2->A1,并抛弃原有的索引(因为设置了ignore_index参数)即可得到上述结果。

1.2 sort_values用法

同样,sort_values可以将DataFrame按指定值的大小顺序重新排列,其用法如下:

data_2=data.sort_values(by='col_2',ascending=False,na_position='first',axis=0)
#按对应值与7运算余数大小来排列
data_3=data.sort_values(by='col_2',,ascending=False,key=lambda x:x%7)  

其结果如下:

这里有以下几点需要说明:

data_2中的na_position指定的是排序列(本例中为col_2)中的空值对应的数据的存放位置,对其他列中的空值不施加任何影响;
data_3的排序结果说明:col_2列中的每个值进行key中指定的操作得到:key(97)=6, key(33)=5, key(3)=3, key(23)=2。然后按照这个大小顺序进行排列。
要注意自定义排序方法key中匿名函数的写法。该匿名函数中x对应的是DataFrame中指定排序列中的每一个具体元素,比如97,33等;
————————————————

2 其他参数用法

第1部分介绍了sort_index和sort_values的主要参数及其常规用法。这一部分主要介绍其他参数的用法

2.1 level:使用某一层级的索引来排序

当DataFrame中的索引为复合索引(MultiIndex)时,需要按照某个指定层级的索引对DataFrame进行排序时,可以通过设置level来实现。先使用如下代码修改data的索引:

data.index=pd.MultiIndex.from_product([['A1','A2'],['B1','B2']],names=['idx_1','idx_2'])

修改后的data结果如下:

当需要使用idx_2对应的索引对DataFrame进行排序时,可以使用参数level。具体如下:

data_4=data.sort_index(level=1) #也可以写作level='idx_2'

data_4结果如下:

2.2 axis轴

为了方便后续说明,先构建如下数据:

import pandas as pd
import numpy as np
data=pd.DataFrame(np.random.randint(10,100,size=(6,6)),
                  columns=pd.MultiIndex.from_product([['col_1','col_2'],['C1','C2','C3']],
                                                    names=['L_CF','L_CS']),
                  index=pd.MultiIndex.from_product([['idx_1','idx_2'],['R1','R2','R3']],
                                                  names=['L_IF','L_IS']))

data结果如下:

2.2.1 set_index中的axis

当set_index中的参数axis=1时,可以将DataFrame中的列按照其列名的大小顺序重新进行排列。具体如下:

data_5=data.sort_index(axis=1,ascending=False,level=1)

其结果如下(图中红框中的即为进行排序操作的值,level=1):

2.2.2 set_values中的axis

set_values方法中的axis情况需要分别讨论。具体如下:

  • axis=0中可以将DataFrame按索引的大小顺序重新对数据进行排列。

data_6=data.sort_values(axis=0,by='L_IS',ascending=False)

其结果如下:

  • 当axis=1时可以将DataFrame按指定某一行的元素大小进行重排。

data_7=data.sort_values(axis=1,by=[('idx_2','R3')])

其结果如下(此时by中要写入排序行的索引):

2.2.3 总结
关于set_index和sort_values中的axis轴参数引发的一些思考,总结如下:

关于index:以前关于DataFrame中的index只是片面地认为就是行索引,但是DataFrame的列名也可以被称为索引。比如data的定义中其二级列明的定义使用的仍然时pd.MultiIndex方法。同样,对于value也是类似。 
 

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

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

相关文章

注解,自定义注解和元注解

1.注解 1.1.注解概述、作用 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0…

Unity类银河恶魔城学习记录12-3 p125 Limit Inventory Slots源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Inventory.cs using Newtonsoft.Json.Linq; using System.Collections; us…

Django--admin 后台管理站点

Django最大的优点之一,就是体贴的提供了一个基于项目model创建的一个后台管理站点admin。这个界面只给站点管理员使用,并不对大众开放。虽然admin的界面可能不是那么美观,功能不是那么强大,内容不一定符合你的要求,但是…

正则表达式(2)

文章目录 专栏导读1、贪婪与非贪婪2、转义匹配 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对大学生、初级数据分析工程师精…

完美运营版商城源码 虚拟商品全功能商城 全能商城小程序 智慧商城系统 全品类百货商城(带安装教程)

完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城 干干净净 没有一丝多余收据 还没过手其他站 还没乱七八走的广告和后门 后台可以自由拖曳修改前端UI页面 还支持虚拟商品自动发货等功能 挺不错的一套源码 前端UNIAPP 后端PHP 一键部署版本 源码下载…

Chatgpt掘金之旅—有爱AI商业实战篇|专业博客|(六)

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 一、AI技术创业博客领域有哪些机会? 人工智能(AI)技术作为当今科技创新的前沿领域,为创业者提供了广阔的机会和挑战。随着AI技…

SketchUp Pro 2024 for mac 草图大师 专业的3D建模软件

SketchUp Pro 2024 for Mac是一款功能强大的三维建模软件,适用于Mac电脑。其简洁易用的界面和强大的工具集使得用户可以轻松创建复杂的3D模型。 软件下载:SketchUp Pro 2024 for mac v24.0.483 激活版下载 SketchUp Pro 2024 for Mac支持导入和导出多种文…

[C++初阶]初识C++(二)

建议先看完上篇:[C初阶]初识C(一)—————命名空间和缺省函数-CSDN博客 本篇部分代码和文案来源:百度文库,知乎,比特就业课 1.函数重载 自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真…

7种链游媒体宣发工具助力游戏营销-华媒舍

一. 什么是链游媒体 链游媒体是指以区块链技术为基础,实现游戏与媒体资源之间的连接和交互的媒体形态。通过区块链技术,链游媒体能够确保游戏内容和媒体信息的透明性和不可篡改性,提供更加公正、透明的游戏环境。 二. 链游媒体宣发工具的重要…

Linux安装nginx保姆级教程

文章目录 前言一、nginx安装(保姆级教程)1.安装nginx依赖2.安装wget3.创建nginx安装目录4.下载nginx5.查看下载好的nginx6.解压缩7.查看当前目录下的文件→进入nginx-1.8.0目录→查看当前目录下的文件8.安装nginx9.查看nginx安装目录并启动nginx10.网络请…

Redis从入门到精通(七)Redis实战(四)库存超卖、一人一单与Redis分布式锁

↑↑↑请在文章开头处下载测试项目源代码↑↑↑ 文章目录 前言4.3 优惠券秒杀4.3.4 库存超卖问题及其解决4.3.4.1 问题分析4.3.4.2 问题解决 4.3.5 一人一单需求4.3.5.1 需求分析4.3.5.2 代码实现4.3.5.3 并发问题4.3.5.4 悲观锁解决并发问题4.3.5.5 集群环境下的并发问题 4.3.…

状态优先级

文章目录 状态优先级1. 进程状态1.1 进程状态查看1.2 僵尸进程1.3 孤儿进程 2.进程优先级2.1 基本概念2.2 查看系统进程2.3 PRI and NI2.4 PRI vs NI 3. 查看进程优先级的命令3.1 top命令更改nice3.2 其他概念 状态优先级 1. 进程状态 看看Linux内核源代码怎么说 为了弄明白…

爬虫 新闻网站 并存储到CSV文件 以红网为例 V2.0 (控制台版)升级自定义查询关键词、时间段,详细注释

爬虫:红网网站, 获取指定关键词与指定时间范围内的新闻,并存储到CSV文件 V2.0(控制台版) 爬取目的:为了获取某一地区更全面的在红网已发布的宣传新闻稿,同时也让自己的工作更便捷 对比V1.0升级的…

设计模式总结-原型设计模式

原型设计模式 模式动机模式定义模式结构模式分析深拷贝和浅拷贝原型模式实例与解析实例一:邮件复制(浅克隆)实例二:邮件复制(深克隆) 模式动机 在面向对象系统中,使用原型模式来复制一个对象自…

人脸识别:Arcface--loss+code

之前只接触过传统方法的人脸识别算法,本以为基于深度学习的方法会使用对比损失之类的函数进行训练,但是Arcface算法基于softmax进行了创新,本文未深究其详细的loss公式原理,在大致明白其方向下,运行了代码,…

2024.4.2-[作业记录]-day07-CSS 盒子模型(显示模式、盒子模型)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.2 学习笔记CSS标签元素显示模式1 块元素2 行内元素3 行内块元素4…

计算机组成结构—存储器概述

目录 一、存储器的分类 1.按存储介质分类 半导体存储器 磁性材料存储器 光盘存储器 2.按存取方式分类 随机存储器(Random Access Memory, RAM) 只读存储器(Read Only Memory, ROM) 串行访问存储器…

如何在iPhone上恢复永久删除的照片?

2007 年,Apple Inc. 推出了这款震撼人心的智能手机,后来被称为 iPhone。您会惊讶地发现,迄今为止,Apple Inc. 已售罄 7 亿台 iPhone 设备。根据 2023 年 8 月的一项调查数据,95% 的智能手机利润都落入了苹果公司的口袋…

下载页面上的视频

引言:有些页面上的视频可以直接右键另存为或者F12检索元素找到视频地址打开后保存,但有些视频页面是转码后的视频,不能直接另存为视频格式,可以参考下本方法 以该页面视频为例:加载中...点击查看详情https://wx.vzan.c…

#SOP#-如何使用AI辅助论文创作

#SOP#-如何使用AI辅助论文创作 ——2024.4.6 “在使用工具的时候,要做工具的主人” 最终交付物: 一份可执行的AI辅助创作论文的指导手册 交付物质量要求: 不为任何AI大模型付费!不为任何降重网站付费!通过知网检查论…