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

  • 相关阅读:
    Golang结构体按某一成员变量排序
    Xilinx IP 10 Gigabit Ethernet Subsystem IP接口说明
    【云原生之Docker实战】使用Docker部署OpenKM文档管理系统
    [计算机入门] Windows附件程序介绍(游戏类)
    接口使用的最佳时机
    解锁编程潜能:探索亚马逊CodeWhisperer,打造编程世界的声音引导者
    每日一题|2022-11-23|1742. 盒子中小球的最大数量|Golang
    C++ using的使用
    Sentinel微服务限流、熔断、降级基本用法(二)
    Oracle 客户体验 (Oracle CX) 怎么样?
  • 原文地址:https://blog.csdn.net/2301_79507619/article/details/136406358