📜  使用 applymap() 突出显示 Pandas DataFrame 的特定列(1)

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

使用 applymap() 突出显示 Pandas DataFrame 的特定列

Pandas 是一个流行的 Python 数据分析库,它可以处理和管理大量的数据集。Pandas 提供了 DataFrame 和 Series 数据类型,能够处理同构或异构数据,让数据科学家更方便地进行数据处理和分析。

Pandas 的 DataFrame 是一个二维的表格结构,每列可以是不同的数据类型,我们可以将 DataFrame 视为一个电子表格或 SQL 表。当需要突出显示特定列时,我们可以使用 applymap() 函数。

applymap() 函数

applymap() 是 Pandas DataFrame 的一个函数,它针对 DataFrame 的每个元素执行一个函数。

DataFrame.applymap(func)

其中,func 是一个接受单个值并返回单个值的 Python 函数。applymap() 会对 DataFrame 的每个元素调用该函数并返回一个新的 DataFrame,其中每个元素都被该函数处理。

突出显示 Pandas DataFrame 的特定列

当需要突出显示 Pandas DataFrame 的特定列时,我们可以先创建一个处理每个元素的函数,再将该函数应用到特定列上。

下面是一个示例代码,演示如何突出显示 DataFrame 的 ‘Name’ 列。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Tom', 'John', 'Mary', 'Anna'],
        'Age': [20, 25, 18, 30],
        'Country': ['USA', 'UK', 'Canada', 'USA']}
df = pd.DataFrame(data)

# 定义突出特定列的函数
def highlight(column):
    """
    根据列的值返回不同的 css 样式
    """
    if column == 'Tom':
        return 'background-color: yellow'
    elif column == 'John':
        return 'background-color: green'
    elif column == 'Mary':
        return 'background-color: red'
    elif column == 'Anna':
        return 'background-color: blue'
    else:
        return ''

# 将函数 apply 到特定列
df.style.applymap(highlight, subset=['Name'])

输出结果为:

Name | Age | Country --- | --- | --- Tom | 20 | USA John | 25 | UK Mary | 18 | Canada Anna | 30 | USA

在上面的示例中,我们定义了一个名为 highlight() 的函数,该函数接受一个值(即 Name 列的单个值),并根据该值返回不同的 css 样式,以突出显示该单元格。随后,我们使用 applymap() 函数将该函数应用到名为 ‘Name’ 的列上。

总结

使用 applymap() 可以方便地对 Pandas DataFrame 的每个元素执行一个函数。当需要突出显示 DataFrame 的特定列时,我们可以使用 applymap() 和自定义的函数实现。