当前位置: 首页 > 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`会更方便、效率更高,但理解其背后的原理是非常有帮助的。

http://www.lryc.cn/news/309589.html

相关文章:

  • 第六课:NIO简介
  • 在vue2中使用饼状图
  • 面经(五)南京 软通动力 一面
  • 线段树模型及例题整理
  • 揭秘Java性能调优的层次 | 综合多方向提升应用程序性能与系统高可用的关键(架构层次规划)
  • 事件循环解析
  • 物联网技术助力智慧城市安全建设:构建全方位、智能化的安全防护体系
  • mac打不开xxx软件, 因为apple 无法检查其是否包含恶意
  • 《深入浅出红黑树:一起动手实现自平衡的二叉搜索树》
  • C++——模版
  • 《TCP/IP详解 卷一》第9章 广播和组播
  • 备战蓝桥杯---动态规划的一些思想1
  • 基于BERTopic模型的中文文本主题聚类及可视化
  • MySQL:函数
  • C/C++内存管理及内存泄漏详解
  • 什么是系统工程(字幕)41
  • 测开新手:pytest+requests+allure自动化测试接入Jenkins学习
  • 学习网络编程No.11【传输层协议之UDP】
  • 向爬虫而生---Redis 基石篇6 <拓展HyperLogLog>
  • JavaScript中的this
  • 宝塔php站点设置伪静态规则 访问 a.com 时候跳转到 a.com/b.html
  • git介绍4.2
  • 【深入了解设计模式】组合设计模式
  • 4.Java---方法+重载
  • 蓝桥杯Java B组历年真题(2013年-2021年)
  • C++笔记(五)--- 虚函数(virtual)
  • 编写加密程序,加密规则为:将所有字母转化为该字母后的第三个字母,即A->D、B->E
  • 【笔记】:更方便的将一个List中的数据传入另一个List中,避免多重循环
  • Cisco Secure ACS 5.8.0.32 安装 + Crack 教程
  • 项目准备March