📜  在 Pandas 中突出显示每列中的最小值(1)

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

在 Pandas 中突出显示每列中的最小值

Pandas 是 Python 编程语言的一个库,用于数据操作和数据分析。在数据分析中,我们经常需要查找每一列中的最小值,并通过可视化或其他方式突出显示这些最小值。在本文中,我们将介绍如何在 Pandas 中突出显示每列中的最小值。

准备数据

在我们开始之前,我们需要一个数据集来演示。在本例中,我们将使用 Pandas 自带的 iris 数据集。可以通过以下代码导入数据集:

import pandas as pd

data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", header=None)

数据集已经在 data 变量中了。我们可以使用 head 方法查看前5行:

data.head()

输出:

     0    1    2    3           4
0  5.1  3.5  1.4  0.2  Iris-setosa
1  4.9  3.0  1.4  0.2  Iris-setosa
2  4.7  3.2  1.3  0.2  Iris-setosa
3  4.6  3.1  1.5  0.2  Iris-setosa
4  5.0  3.6  1.4  0.2  Iris-setosa

这个数据集包含了花的四个特征值和类别。在这个数据集中,我们可以使用后面的四列数据来找到每一列中的最小值。

查找每列中的最小值

Pandas 提供了 min 方法可以查找每一列中的最小值。我们可以使用以下代码:

min_values = data.iloc[:,:-1].min()

输出:

0    4.3
1    2.0
2    1.0
3    0.1
dtype: float64

这个代码中,我们使用 iloc 方法取到数据集的所有行,去掉最后一列,即花的类别。然后使用 min 方法查找每一列中的最小值。最后,我们将每一列的最小值保存在 min_values 变量中。

渲染最小值

现在,我们已经有了每一列中的最小值。我们可以使用 Pandas 的 style 属性将这些最小值渲染输出。以下是我们将要使用的代码:

def highlight_min_values(s):
    is_min = s == s.min()
    return ['background-color: yellow' if v else '' for v in is_min]

data_style = data.style.apply(highlight_min_values, axis=0, subset=pd.IndexSlice[:, :-1])
data_style

这段代码中,我们定义了一个函数 highlight_min_values,它接收一个 Pandas Series,在这个 Series 中,我们将会渲染每一列的最小值。

接下来,我们使用 Pandas 的 style 属性初始化了一个 data_style 变量。通过 apply 方法,我们将 highlight_min_values 函数应用于整个 DataFrame,使用 axis=0 来表示应用于每一列,使用 subset 参数来指定需要渲染的列。注意,我们没有使用最后一列,即花的类别。

最后,我们输出了 data_style,它将给我们一个带有强调颜色的 DataFrame。

结论

在 Pandas 中突出显示每列中的最小值需要一些准备工作,但它是可行的。我们首先找到每列中的最小值,然后使用 Pandas 的 style 属性来渲染这些最小值。通过这个过程,我们可以更好地理解我们的数据集或者在数据分析中发现有趣的关系。