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

python常用pandas函数nlargest 和 nsmallest及其手动实现

`pandas`是Python数据分析的重要工具之一,提供了大量便捷的数据操作方法。`nlargest`和`nsmallest`是`pandas`中两个非常实用的函数,它们可以帮助我们快速找出Series或DataFrame中最大或最小的n个值。

### pandas中的`nlargest`和`nsmallest`函数

- `nlargest(n, columns, keep='first')`: 返回DataFrame中某列最大的n个值。

- `nsmallest(n, columns, keep='first')`: 返回DataFrame中某列最小的n个值。

参数解释:

- `n`:一个整数,表示想要返回的元素数量。

- `columns`:用于指定在哪一列中查找最大或最小值。

- `keep`:{'first', 'last', 'all'},这个参数决定了当存在多个相同的最大或最小值时,保留哪些。默认是'first',即仅保留第一次出现的值。

### 示例

假设我们有以下DataFrame:

```python

import pandas as pd

data = {'Name': ['Tom', 'Jerry', 'Mickey', 'Donald', 'Goofy'],

        'Age': [25, 21, 30, 29, 24]}

df = pd.DataFrame(data)

```

- 查找年龄最大的3个角色:

```python

df.nlargest(3, 'Age')

```

- 查找年龄最小的2个角色:

```python

df.nsmallest(2, 'Age')

```

### 手动实现`nlargest`和`nsmallest`

尽管pandas提供了这两个非常方便的函数,但了解它们的手动实现方式也是有益的,这有助于加深对数据操作的理解。

#### 手动实现`nlargest`

```python

def manual_nlargest(df, n, column):

    return df.sort_values(by=column, ascending=False).head(n)

```

#### 手动实现`nsmallest`

```python

def manual_nsmallest(df, n, column):

    return df.sort_values(by=column).head(n)

```

### 示例

使用手动实现的函数:

- 查找年龄最大的3个角色:

```python

manual_nlargest(df, 3, 'Age')

```

- 查找年龄最小的2个角色:

```python

manual_nsmallest(df, 2, 'Age')

```

这些手动实现方法基于DataFrame的`sort_values`函数,通过排序并选择顶部n行实现。虽然在实践中,直接使用pandas提供的`nlargest`和`nsmallest`会更方便、效率更高,但理解其背后的原理是非常有帮助的。

相关文章:

python常用pandas函数nlargest 和 nsmallest及其手动实现

pandas是Python数据分析的重要工具之一,提供了大量便捷的数据操作方法。nlargest和nsmallest是pandas中两个非常实用的函数,它们可以帮助我们快速找出Series或DataFrame中最大或最小的n个值。 ### pandas中的nlargest和nsmallest函数 - nlargest(n, colu…...

第六课:NIO简介

一、传统BIO的缺点 BIO属于同步阻塞行IO,在服务器的实现模型为,每一个连接都要对应一个线程。当客户端有连接请求的时候,服务器端需要启动一个新的线程与之对应处理,这个模型有很多缺陷。当客户端不做出进一步IO请求的时候,服务器…...

在vue2中使用饼状图

1.引入vue2和echarts <script src"https://cdn.jsdelivr.net/npm/vue2.7.14/dist/vue.js"></script> <script src"https://cdn.jsdelivr.net/npm/echarts5.4.0/dist/echarts.min.js"></script> 2.1 补充基本的body内容 <div id…...

面经(五)南京 软通动力 一面

注&#xff1a;已经有了接近一年的工作经验 总体评价 不完全是技术面&#xff0c;面试经过还行&#xff0c;但可能是期望岗位和对方需求不太一致&#xff0c;感觉不太好过 面试经过 HR找你&#xff0c;发简历入库&#xff0c;然后商量面试时间&#xff0c;发腾讯会议链接腾…...

线段树模型及例题整理

线段树的应用范围非常广&#xff0c;可以处理很多与区间有关的题目。 将区间抽象成一个节点&#xff0c;在这个节点中储存这个区间的一些值&#xff0c;那么如果看成节点的话&#xff0c;这就很像一棵满二叉树&#xff0c;所以我们可以用一维数组来储存节点。那么就要考虑父子节…...

揭秘Java性能调优的层次 | 综合多方向提升应用程序性能与系统高可用的关键(架构层次规划)

揭秘性能调优的层次 | 综合多方向提升应用程序性能与系统的高可用 前言介绍调优层次调优 — 设计案例说明 - 操作轮询控制事件驱动 调优 — 代码案例说明 - ArrayList和LinkedList性能对比案例说明 - 文件读写实现方式的性能对比 调优 — JVMJVM架构分布JVM调优方向**JVM垃圾回…...

事件循环解析

浏览器的进程模型 何为进程&#xff1f; 程序运行需要有它自己专属的内存空间&#xff0c;可以把这块内存空间简单的理解为进程 每个应用至少有一个进程&#xff0c;进程之间相互独立&#xff0c;即使要通信&#xff0c;也需要双方同意。 何为线程&#xff1f; 有了进程后&…...

物联网技术助力智慧城市安全建设:构建全方位、智能化的安全防护体系

一、引言 随着城市化进程的加速和信息技术的迅猛发展&#xff0c;智慧城市已成为现代城市发展的重要方向。在智慧城市建设中&#xff0c;安全是不可或缺的一环。物联网技术的快速发展为智慧城市安全建设提供了有力支持&#xff0c;通过构建全方位、智能化的安全防护体系&#…...

mac打不开xxx软件, 因为apple 无法检查其是否包含恶意

1. 安全性与隐私下面的允许来源列表&#xff0c;有些版本中的‘任何来源’选项被隐藏了&#xff0c;有些从浏览器下载的软件需要勾选这个选项才能安装 打开‘任何来源’选项 sudo spctl --master-disable 关闭‘任何来源’选项 sudo spctl --master-enable...

《深入浅出红黑树:一起动手实现自平衡的二叉搜索树》

一、分析 1. 红黑树的性质 红黑树是一种自平衡的二叉搜索树&#xff0c;它具有以下五个性质&#xff1a; &#xff08;1&#xff09;节点是红色或黑色。 &#xff08;2&#xff09;根节点是黑色。 &#xff08;3&#xff09;所有叶子节点&#xff08;NIL节点&#xff09;是…...

C++——模版

前言&#xff1a;哈喽小伙伴们好久不见&#xff0c;这是2024年的第一篇博文&#xff0c;我们将继续C的学习&#xff0c;今天这篇文章&#xff0c;我们来习一下——模版。 目录 一.什么是模版 二.模版分类 1.函数模版 2.类模板 总结 一.什么是模版 说起模版&#xff0c;我们…...

《TCP/IP详解 卷一》第9章 广播和组播

目录 9.1 引言 9.2 广播 9.2.1 使用广播地址 9.2.2 发送广播数据报 9.3 组播 9.3.1 将组播IP地址转换为组播MAC地址 9.3.2 例子 9.3.3 发送组播数据报 9.3.4 接收组播数据报 9.3.5 主机地址过滤 9.4 IGMP协议和MLD协议 9.4.1 组成员的IGMP和MLD处理 9.4.2 组播路由…...

备战蓝桥杯---动态规划的一些思想1

话不多说&#xff0c;直接看题&#xff1a; 目录 1.双线程DP 2.正难则反多组DP 3.换个方向思考&#xff1a; 1.双线程DP 可能有人会说直接贪心&#xff1a;先选第1条的最优路径&#xff0c;再选第2条最优路径。 其实我们再选第1条时&#xff0c;我们怎么选会对第2条的路径…...

基于BERTopic模型的中文文本主题聚类及可视化

文章目录 BERTopic简介模型加载地址文本加载数据处理BERTopic模型构建模型结果展示主题可视化总结BERTopic简介 BERTopic论文地址:BERTopic: Neural topic modeling with a class-based TF-IDF procedure BERTopic是一种结合了预训练模型BERT和主题建模的强大工具。它允许我…...

MySQL:函数

提醒&#xff1a; 设定下面的语句是在数据库名为 db_book里执行的。 创建user_info表 注意&#xff1a;pwd为密码字段&#xff0c;这里使用了VARCHAR(128)类型&#xff0c;为了后面方便对比&#xff0c;开发项目里一般使用char(32)&#xff0c;SQL语句里使用MD5加密函数 USE db…...

C/C++内存管理及内存泄漏详解

目录 C/C内存分布 C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free C内存管理方式 new/delete操作内置类型 new和delete操作自定义类型 operator new与operator delete函数 new和delete的实现原理 内置类型 自定义类型 内存泄漏 概念 内存泄漏分类 ⭐…...

什么是系统工程(字幕)41

0 00:00:01,650 --> 00:00:01,884 好 1 00:00:01,884 --> 00:00:06,330 那这个时候我们就可以把它绑定到上面了 2 00:00:06,610 --> 00:00:07,940 那我们来看 3 00:00:11,710 --> 00:00:12,930 幻灯片上 4 00:00:15,530 --> 00:00:15,885 5 00:00:15,885 --…...

测开新手:pytest+requests+allure自动化测试接入Jenkins学习

最近在这整理知识&#xff0c;发现在pytest的知识文档缺少系统性&#xff0c;这里整理一下&#xff0c;方便后续回忆。 在python中&#xff0c;大家比较熟悉的两个框架是unittest和pytest&#xff1a; Unittest是Python标准库中自带的单元测试框架&#xff0c;Unittest有时候…...

学习网络编程No.11【传输层协议之UDP】

引言&#xff1a; 北京时间&#xff1a;2023/11/20/9:17&#xff0c;昨天成功更文&#xff0c;上周实现了更文两篇&#xff0c;所以这周再接再厉。当然做题任在继续&#xff0c;而目前做题给我的感觉以套路和技巧偏多&#xff0c;还是那句话很多东西不经历你就是不懂&#xff…...

向爬虫而生---Redis 基石篇6 <拓展HyperLogLog>

前言: 继续之前的 向爬虫而生---Redis 基石篇5 &#xff1c;拓展Zset&#xff1e;-CSDN博客 一些比较基础的redis类型在初中级阶段用着没有毛病,但是到了大数据时代,慢慢一些更高级的场景,就需要把这几个类型搬出来了! 正文: 概念: 当我们需要对一个大型数据集进行去重计…...

奶奶都能看懂的 C# —— 手把手 LINQ懈

一、 什么是 AI Skills&#xff1a;从工具级到框架级的演化 AI Skills&#xff08;AI 技能&#xff09; 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初&#xff0c;Skills 被视为“工具级”的增强&#xff0c;如简单的文件读写或终端操作&#xff0c;方便用户快速…...

AI开发-python-langchain框架(--word文档加载 )喝

AI训练存储选型的演进路线 第一阶段&#xff1a;单机直连时代 早期的深度学习数据集较小&#xff0c;模型训练通常在单台服务器或单张GPU卡上完成。此时直接将数据存储在训练机器的本地NVMe SSD/HDD上。 其优势在于IO延迟最低&#xff0c;吞吐量极高&#xff0c;也就是“数据离…...

告别OpenAI API费用!用Ollama+crewAI搭建免费本地AI工作流(保姆级避坑指南)

零成本构建本地AI工作流&#xff1a;Ollama与crewAI深度整合实战指南 在技术迭代日新月异的今天&#xff0c;大型语言模型已成为开发者工具箱中不可或缺的一部分。然而&#xff0c;商业API的高昂成本和网络限制常常让个人开发者和小型团队望而却步。本文将带你探索如何利用Olla…...

Phi-4-reasoning-vision-15B效果展示:手机短信截图→关键信息(时间/金额/对象)精准抽取

Phi-4-reasoning-vision-15B效果展示&#xff1a;手机短信截图→关键信息&#xff08;时间/金额/对象&#xff09;精准抽取 1. 模型能力概览 Phi-4-reasoning-vision-15B是微软推出的视觉多模态推理模型&#xff0c;专门针对图像理解和信息提取任务进行了优化。这个模型最令人…...

避坑指南:PaviaU数据集预处理中,你的标准化和样本切片方法可能都错了

高光谱数据处理进阶&#xff1a;PaviaU数据集预处理的三大优化策略 1. 标准化方法的深度选择&#xff1a;全局与逐波段的博弈 高光谱数据的标准化处理远非简单调用StandardScaler()就能解决。PaviaU数据集包含103个波段&#xff0c;每个波段的光谱响应特性差异显著。全局标准化…...

Lumafly:让空洞骑士模组管理变得像呼吸一样简单

Lumafly&#xff1a;让空洞骑士模组管理变得像呼吸一样简单 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly 还在为空洞骑士模组安装的繁琐流程而烦恼吗&#xf…...

今天不设计灰度策略,明天就回滚AI版本:AI原生研发最后的防御工事——4层熔断+2级回滚+1键快照应急协议

第一章&#xff1a;今天不设计灰度策略&#xff0c;明天就回滚AI版本&#xff1a;AI原生研发最后的防御工事——4层熔断2级回滚1键快照应急协议 2026奇点智能技术大会(https://ml-summit.org) 在AI模型服务化&#xff08;MaaS&#xff09;生产环境中&#xff0c;单次错误推理可…...

从数据采集到回放验证:ADTF 适配 ROS 的 ADAS 测试实践胃

一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) { private readonly SqlSource _source new(builder.DataSource); private readonly IParamQuery_accountQuery b…...

告别静态!Midjourney+TurboDiffusion组合拳:一键生成动态短视频

告别静态&#xff01;MidjourneyTurboDiffusion组合拳&#xff1a;一键生成动态短视频 1. 从静态到动态的创意革命 想象一下&#xff0c;你精心设计的Midjourney作品突然"活"了起来——角色开始眨眼微笑&#xff0c;风景画中的云朵缓缓流动&#xff0c;产品展示图自…...

【C++】CLion中实现跨平台中文输出的终极方案

1. 为什么CLion中会出现中文乱码问题 第一次在CLion里写C程序输出中文时&#xff0c;看到控制台显示一堆问号或乱码&#xff0c;相信很多开发者都遇到过这个头疼的问题。这其实不是C语言本身的缺陷&#xff0c;而是开发环境、编译器和终端三者之间的编码不协调导致的。 想象一下…...