当前位置: 首页 > news >正文

sort_values、sort 和 sorted 的区别与用法详解

sort_valuessortsorted 是 Python 中用于排序的工具,但它们的适用场景和行为有所不同。以下是它们的区别和用法详解:


1. sort_values

适用对象

Pandas 的 SeriesDataFrame

功能

对 Pandas 数据结构中的值进行排序。

特点

  • 专为 Pandas 设计。

  • 支持按列排序(DataFrame)或按值排序(Series)。

  • 返回一个新的排序后的对象(默认不会修改原数据)。

示例

Python复制

import pandas as pd# 创建 DataFrame
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],'Score': [85, 92, 78]
})# 按 Score 列升序排序
sorted_df = df.sort_values(by='Score')
print(sorted_df)
# 输出:
#       Name  Score
# 2  Charlie     78
# 0    Alice     85
# 1      Bob     92

参数

  • by:指定排序依据的列名(对于 DataFrame)。

  • ascending=True/False:升序或降序,默认升序。

  • inplace=True/False:是否修改原数据,默认不修改。


2. sort

适用对象

列表(list)。

功能

对列表进行原地排序(直接修改原列表)。

特点

  • 只适用于列表。

  • 原地操作:会直接修改原列表,而不是返回新列表。

  • 不支持复杂排序逻辑(如多列排序)。

示例

Python复制

numbers = [3, 1, 4, 2]
numbers.sort()
print(numbers)  # 输出: [1, 2, 3, 4]

参数

  • key:指定排序规则(如按长度排序字符串)。

  • reverse=True/False:是否降序,默认升序。

注意

  • 如果需要保留原列表不变,可以使用 sorted()


3. sorted

适用对象

任何可迭代对象(list, tuple, dict, 等)。

功能

返回一个排序后的新对象,不会修改原数据

特点

  • 更通用,适用于所有可迭代对象。

  • 返回的是新的排序结果,原数据保持不变。

  • 支持自定义排序规则(通过 key 参数)。

示例

Python复制

# 对列表排序
numbers = [3, 1, 4, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 2, 3, 4]
print(numbers)         # 原列表不变: [3, 1, 4, 2]# 对字典按键排序
data = {'b': 2, 'a': 1, 'c': 3}
sorted_data = sorted(data.items())
print(sorted_data)  # 输出: [('a', 1), ('b', 2), ('c', 3)]

参数

  • iterable:要排序的可迭代对象。

  • key:指定排序规则(如按长度排序字符串)。

  • reverse=True/False:是否降序,默认升序。


三者的区别总结

特性sort_valuessortsorted
适用对象Pandas 的 Series 或 DataFrame列表(list任何可迭代对象
是否修改原数据默认不修改(可通过 inplace=True 修改)直接修改原列表不修改原数据
返回值排序后的新对象无返回值(原地修改)排序后的新对象
复杂排序支持支持按列或多列排序不支持复杂排序支持自定义排序规则(通过 key
性能高效处理大规模数据适合小规模列表更通用,但可能稍慢

实际应用场景对比

1. Pandas 数据排序

  • 使用 sort_values,例如按某列排序 DataFrame。

    Python复制

    df.sort_values(by='Score', ascending=False)

2. 列表排序

  • 如果需要保留原列表,用 sorted

    Python复制

    sorted_list = sorted([3, 1, 4, 2])
  • 如果允许修改原列表,用 sort

    Python复制

    numbers.sort()

3. 复杂排序规则

  • 使用 sortedsortkey 参数。

    Python复制

    # 按字符串长度排序
    words = ['apple', 'banana', 'kiwi']
    sorted_words = sorted(words, key=len)
    print(sorted_words)  # 输出: ['kiwi', 'apple', 'banana']

总结

  • sort_values:Pandas 专用,适合处理表格数据。

  • sort:列表专用,原地排序。

  • sorted:通用性强,适合所有可迭代对象,且不修改原数据。

根据具体需求选择合适的工具,避免混淆!

相关文章:

sort_values、sort 和 sorted 的区别与用法详解

sort_values、sort 和 sorted 是 Python 中用于排序的工具,但它们的适用场景和行为有所不同。以下是它们的区别和用法详解: 1. sort_values 适用对象 Pandas 的 Series 或 DataFrame。 功能 对 Pandas 数据结构中的值进行排序。 特点 专为 Pandas 设…...

银行系统功能架构设计元模型

1. 元模型核心目标 ​规范性:定义功能模块的标准化描述方式,便于跨团队协作。​可复用性:抽象通用组件,减少重复开发。​可扩展性:支持未来业务创新和技术升级(如开放银行API集成)。​2. 元模型层级结构 采用分层架构模式,分为以下核心层级: ​**(1) 业务功能层** ​…...

rabbitmq 延时队列

要使用 RabbitMQ Delayed Message Plugin 实现延时队列,首先需要确保插件已安装并启用。以下是实现延时队列的步骤和代码示例。 1. 安装 RabbitMQ Delayed Message Plugin 首先,确保你的 RabbitMQ 安装了 rabbitmq-delayed-message-exchange 插件。你可…...

idea + Docker + 阿里镜像服务打包部署

一、下载docker desktop软件 官网下载docker desktop,需要结合wsl使用 启动成功的画面(如果不是这个画面例如一直处理start或者是stop需要重新启动,不行就重启电脑) 打包成功的镜像在这里,如果频繁打包会导致磁盘空间被占满,需…...

Vue 3 零基础入门:从计数器应用开始你的工程化之旅 - 深入理解 Vue 3 响应式系统

引言 欢迎来到 Vue 3 + 现代前端工程化 系列技术博客! 本系列博客旨在通过每日构建一个小项目,帮助您深入学习 Vue 3 的各项核心特性,并掌握现代前端工程化的实践技能。 在接下来的系列文章中,我们将从零开始,由浅入深,逐步构建一系列实用的小型应用。 今天,作为本系列…...

批量将手机照片修改为一寸白底证件照的方法

生活中经常需要用到一寸白底证件照,但每次去照相馆拍摄既费时又麻烦。其实,利用手机拍照和批量证件照生成工具,就能轻松批量修改手机照片为一寸白底证件照。 首先,在电脑浏览器中打开【报名电子照助手】,找到“批量证件…...

【Docker基础】理解 Docker:本质、性质、架构与核心组件

文章目录 Docker 本质Docker 的引擎迭代Docker 和虚拟机的区别Docker 为什么比虚拟机资源利用率高,速度快?Docker 和 JVM 虚拟化的区别Docker 版本1. LXC (Linux Containers)2. libcontainer3. Moby4. docker-ce5. docker-ee总结: Docker 架构…...

LeetCodehot 力扣热题100 全排列

这段代码的目的是计算给定整数数组的所有全排列(permutations),并返回一个包含所有排列的二维数组。 思路解析 在这段代码中,采用了 深度优先搜索(DFS) 和 回溯 的方法来生成所有的排列。 关键步骤&#xf…...

SQL笔记#数据更新

一、数据的插入(INSERT语句的使用方法) 1、什么是INSERT 首先通过CREATE TABLE语句创建表,但创建的表中没有数据;再通过INSERT语句向表中插入数据。 --创建表ProductIns CREATE TABLE ProductIns (product_id CHAR(4) NOT NULL,product_name VARCHAR(1…...

GCC 和 G++的基本使用

GCC 和 G 命令 GCC 和 G 命令GCC(GNU C 编译器)基本用法常用选项示例 G(GNU C 编译器)基本用法常用选项示例 GCC 与 G 的区别选择使用 GCC 还是 G C编译流程1. 预处理(Preprocessing)2. 编译(Co…...

Maven中一些基础知识点

早些时候只知道创建或者开发springboot项目时候,有一个叫pom.xml的文件可以用来管理项目所需的依赖/第三方工具。 索性稍微深入了解了一下,然后把自己认为重要的记录下来。 首先我们要引入新的依赖自然是在dependencies下写dependency,这个…...

论文阅读笔记:Deep Face Recognition: A Survey

论文阅读笔记:Deep Face Recognition: A Survey 1 介绍2 总览2.1 人脸识别组件2.1.1 人脸处理2.1.2 深度特征提取2.1.3 基于深度特征的人脸对比 3 网络结构和损失函数3.1 判别损失函数的演化3.1.1 基于欧式距离的损失3.1.2 基于角度/余弦边距的损失3.1.3 Softmax损失…...

JVM生产环境问题定位与解决实战(三):揭秘Java飞行记录器(JFR)的强大功能

提到飞行记录器,或许你的脑海中并未立刻浮现出清晰的画面,但一说起“黑匣子”,想必大多数人都能恍然大悟,知晓其重要性及用途。在航空领域,黑匣子作为不可或缺的设备,默默记录着飞行过程中的每一项关键数据…...

爬虫框架与库

爬虫框架与库是用于网络数据抓取的核心工具,帮助开发者高效地从网页中提取结构化数据。 Requests:用于发送HTTP请求。 BeautifulSoup:用于解析HTML和XML。 Scrapy:强大的爬虫框架,适合大规模爬取。 Selenium&#…...

PyTorch常用函数总结(持续更新)

本文主要记录自己在用 PyTorch复现经典模型 过程中遇到的一些函数及用法,以期对 常见PyTorch函数 更加熟练~ 官方Docs:PyTorch documentation — PyTorch 2.6 documentation 目录 数据层面 torch.sign(tensor) torch.tensor(np.eye(3)[y]) torch.on…...

代码异常(js中push)NO.4

1. 环境 Vue3,Element Plsu 2. 示例代码 const { updateBy, updateTime, ...curObj } form.valuecurObj.id props.tableData.length 1var newTableData props.tableData.push(curObj)updateTableData(newTableData)3. 情景描述 newTableData变成了整数&#…...

Anaconda 2025 最新版安装与Python环境配置指南(附官方下载链接)

一、软件定位与核心功能 Anaconda 2025 是Python/R数据科学集成开发平台,预装1500科学计算库,新增AI模型可视化调试、多环境GPU加速等特性。相较于传统Python安装,其优势包括: 环境隔离:通过conda工具实现多版本Pyth…...

Vue 中动态实现进度条

在 Vue 中动态实现进度条,基本上有两种常见的方法:直接通过 Vue 数据绑定控制样式,或者利用外部库来实现更复杂的功能。我们会深入探讨这两种方式,并且详细说明每种方法的实现步骤、优缺点以及使用场景。 1. 使用 Vue 数据绑定来…...

CSS滚动条原理与自定义样式指南,CSS滚动条样式失效,滚动条样式无效,-webkit-scrollbar无效,overflow不显示滚动条

滚动内容形成的必要条件 CSS Overflow属性解析 MDN官方文档-Overflow属性 菜鸟教程-Overflow属性 overflow 属性控制内容溢出元素框时在对应的元素区间内是否添加滚动条。 值描述visible默认值。内容不会被修剪,会呈现在元素框之外。hidden内容会被修剪&#xf…...

Three.js 入门(辅助、位移、父子关系、缩放旋转、响应式布局)

本篇主要学习内容 : 三维坐标系与辅助坐标系物体位移与父子元素物体的缩放与物体的旋转设置响应式画布与全屏控制 点赞 关注 收藏 学会了 本文使用 Three.js 的版本:171 基于 Vue3vite开发调试 1.三维坐标系与辅助坐标系 1.1) 导入three和轨道控制器 // 导入…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...