sort_values、sort 和 sorted 的区别与用法详解
sort_values、sort 和 sorted 是 Python 中用于排序的工具,但它们的适用场景和行为有所不同。以下是它们的区别和用法详解:
1. sort_values
适用对象
Pandas 的 Series 或 DataFrame。
功能
对 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_values | sort | sorted |
|---|---|---|---|
| 适用对象 | 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. 复杂排序规则
-
使用
sorted或sort的key参数。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) 和 回溯 的方法来生成所有的排列。 关键步骤…...
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内容会被修剪…...
Three.js 入门(辅助、位移、父子关系、缩放旋转、响应式布局)
本篇主要学习内容 : 三维坐标系与辅助坐标系物体位移与父子元素物体的缩放与物体的旋转设置响应式画布与全屏控制 点赞 关注 收藏 学会了 本文使用 Three.js 的版本:171 基于 Vue3vite开发调试 1.三维坐标系与辅助坐标系 1.1) 导入three和轨道控制器 // 导入…...
Chart.js项目实战:物流运输跟踪系统的终极可视化指南
Chart.js项目实战:物流运输跟踪系统的终极可视化指南 【免费下载链接】awesome A curated list of awesome Chart.js resources and libraries 项目地址: https://gitcode.com/GitHub_Trending/awesome/awesome 在当今快节奏的物流行业中,实时数据…...
企业专属Agent开发从入门到精通(非常详细),看这篇就够了!
导读 随着 2025 年通用 Agent 在 C 端市场的爆发式增长,包括 Manus 被 Meta 收购等标志性事件的出现,人工智能正在重塑个人生产力。然而,当目光转向企业级(ToB)市场时,Agent 的落地进程却呈现出明显的滞后与…...
基于gmid设计方法的二级运放优化与仿真验证
1. 从零理解gmid设计方法 我第一次接触gmid设计方法时,完全被各种曲线和参数搞晕了。后来在实际项目中反复尝试,才发现这套方法简直是模拟电路设计的"瑞士军刀"。简单来说,gmid就是晶体管的跨导(gm)与漏极电…...
客服机器人回答错误可自动撤回?智能 Agent 功能详解 + 消息撤回,发错答案快速补救?
在电商客服场景中,智能客服机器人已经成为企业降本增效的核心工具。然而,机器人再智能,也难免出现回答偏差、答非所问或信息过时的情况。客服人员忙碌接待时,往往来不及截图上报,就只能眼睁睁看着错误信息发给买家。这…...
2025届最火的降重复率平台推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在如今天日渐趋成熟的AI生成内容检测技术状况下,众多创作者都面临着内容被标记成…...
3分钟Pytest快速入门
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Pytest的入门操作使用 Pytest特点 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试和…...
前端福音!VuReact v1.6.0 版本更新,让 Vue 转 React 更高效、更可靠
前端开发者必备的 Vue 转 React 编译工具 VuReact 迎来 v1.6.0 版本更新,重点强化 Vue3 转 React 类型安全与转换稳定性,支持多项转换,完善多项关键问题。新增能力亮点多此次更新新增能力拉满。编译解析阶段能精准收集 SFC 元数据,…...
DepMap(DepMap Portal)数据集说明
它是 Broad Institute 的 Cancer Dependency Map(癌症依赖图谱) 门户,核心目标是给研究者开放提供癌症细胞系的关键依赖性数据、分析工具和可视化工具,用来发现癌症的脆弱点和潜在治疗靶点。(某个癌症在什么基因上有生…...
SSL_read vs recv:从TCP到TLS的数据读取差异详解(附Wireshark抓包分析)
SSL_read与recv的深度对比:从TCP流到TLS记录层的读取机制解析 当开发者从传统TCP套接字编程转向加密通信时,往往会遇到一个看似简单却令人困惑的问题:为什么SSL_read的行为与recv如此不同?本文将通过协议栈原理、内核行为差异和实…...
打开 Word 提示环境变量错误怎么办?一文讲清注册表修复方法
🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...
