📌  相关文章
📜  在 Pandas 数据框中选择具有最大值和最小值的行(1)

📅  最后修改于: 2023-12-03 15:07:45.400000             🧑  作者: Mango

在 Pandas 数据框中选择具有最大值和最小值的行

Pandas 是一个强大的 Python 库,用于数据操作和分析。当我们需要在 Pandas 数据框中选择具有最大值和最小值的行时,可以使用以下两种方法:

方法一:使用 loc 和 iloc 选择最大值和最小值行

在 Pandas 数据框中,每一列都是一个 Pandas Series。我们可以先使用 idxmaxidxmin 函数找到最大值和最小值所在的索引位置,然后使用 loc 或者 iloc 找到具有最大值和最小值的行。

import pandas as pd

# 创建一个 Pandas 数据框
data = {'name':['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
        'score':[98, 86, 92, 78, 85]}
df = pd.DataFrame(data)

# 找到具有最大值和最小值的行
max_idx = df['score'].idxmax()
min_idx = df['score'].idxmin()

# 使用 loc 选择最大值和最小值行
print(df.loc[[max_idx, min_idx]])

# 使用 iloc 选择最大值和最小值行
print(df.iloc[[max_idx, min_idx]])

这段代码将打印出具有最大值和最小值的行,输出结果如下:

      name  score
0    Alice     98
3    David     78
方法二:使用 nlargest 和 nsmallest 选择最大值和最小值行

Pandas 还提供了 nlargestnsmallest 函数,可以直接返回具有最大值和最小值的行。这两个函数都需要指定需要选择的列名,以及选择的行数。

import pandas as pd

# 创建一个 Pandas 数据框
data = {'name':['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
        'score':[98, 86, 92, 78, 85]}
df = pd.DataFrame(data)

# 使用 nlargest 选择最大值行
print(df.nlargest(1, 'score'))

# 使用 nsmallest 选择最小值行
print(df.nsmallest(1, 'score'))

这段代码将打印出具有最大值和最小值的行,输出结果如下:

    name  score
0  Alice     98
   name  score
3  David     78

以上就是在 Pandas 数据框中选择具有最大值和最小值的行的两种方法。如果你对 Pandas 还不够熟悉,可以继续学习 Pandas 的其他内容。