Pandas DataFrame Nlargest 方法

Beginner

介绍

在本实验中,我们将探索 Pandas DataFrame 中的 nlargest() 方法。该方法允许我们根据指定的列或列组,按降序检索 DataFrame 的前 N 行。

虚拟机提示

虚拟机启动完成后,点击左上角切换到 Notebook 选项卡,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。实验结束后提供反馈,我们将及时为你解决问题。

创建一个 DataFrame

让我们从创建一个示例 DataFrame 开始。我们将使用以下代码创建一个包含 Name(姓名)、Age(年龄)、Height(身高)和 Weight(体重)列的 DataFrame:

import pandas as pd

df = pd.DataFrame({'Name':['Chetan','yashas','yuvraj','Pooja','Sindu','Renuka'],
                   'Age':[20,25,30,18,25,20],
                   'Height':[155,160,175,145,155,165],
                   'Weight':[75,60,75,45,55,65]})

这段代码创建了一个包含指定列和数据的 DataFrame。

使用 nlargest() 方法

nlargest() 方法允许我们根据指定的列检索前 N 行。使用该方法的语法如下:

df.nlargest(n, columns)
  • n 是一个整数,用于指定返回的行数。
  • columns 是一个标签或标签列表,表示用于排序的列。

检索前 N 行数据

让我们使用 nlargest() 方法根据 'Height' 列检索前 2 行。我们将使用以下代码:

top_n_rows = df.nlargest(2, 'Height')
print(top_n_rows)

这段代码将返回一个按 'Height' 列排序的前 2 行组成的新 DataFrame。

指定不同的列

我们也可以使用 nlargest() 方法根据不同的列检索前 N 行。让我们通过以下代码根据 'Age' 列检索前 3 行:

top_n_rows = df.nlargest(3, 'Age')
print(top_n_rows)

这段代码将返回一个按 'Age' 列排序的前 3 行组成的新 DataFrame。

指定 Keep 参数

我们可以指定 keep 参数来优先处理具有重复值的行的第一个或最后一个出现。默认情况下,keep 设置为 'first'。让我们在根据 'Height' 列检索前 2 行时指定 keep='last'

top_n_rows = df.nlargest(2, 'Height', keep='last')
print(top_n_rows)

这段代码将返回一个包含 'Height' 列中最大值的最后 2 行组成的新 DataFrame。

总结

在本实验中,我们学习了如何在 Pandas DataFrame 中使用 nlargest() 方法。我们可以使用该方法根据指定的列或列组检索前 N 行,并按降序排列。我们还可以指定 keep 参数来优先处理具有重复值的行的第一个或最后一个出现。该方法对于根据特定条件快速查找 DataFrame 中的最大值或最高值非常有用。