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


在使用 Pandas DataFrame 展示或解释一些事实和数据时,我们可能需要突出显示给定数据中重要的行和列,这有助于使它们更具吸引力、更容易理解和视觉效果更佳。突出显示 Pandas DataFrame 的特定列的一种方法是使用内置方法 applymap()。

使用 applymap() 方法突出显示 Pandas DataFrame 的 Python 程序

为了正确理解代码,我们需要讨论 Pandas 和 applymap() 的基础知识。

Pandas

这是一个开源的 Python 库,主要用于数据分析和处理。它可以通过对指定数据执行各种操作(例如清洗、过滤、分组、聚合和合并)来处理关系数据和带标签的数据。

applymap() 方法

它用于对整个 Pandas DataFrame 以元素级的方式应用用户定义的方法。要突出显示特定列,我们首先需要定义一个自定义方法,该方法定义突出显示列所需的条件,然后我们使用 applymap() 方法以及 style 模块来执行操作。

语法

style.applymap(nameOfMethod)

示例 1

以下示例演示了如何使用 applymap() 方法突出显示 Pandas DataFrame 中的特定列。

方法

  • 首先,导入 Pandas 库以便我们可以使用 DataFrame。

  • 创建一个用户定义的方法,该方法以 'value' 作为参数并返回背景颜色。此方法将检查值是否可被 2 整除。如果是,则将颜色设置为蓝色;如果值可被 3 整除,则将颜色设置为橙色;否则,颜色将保持为空。

  • 创建一个包含名为 'Number' 的单个列和一些值的 DataFrame。

  • 然后,使用 'applymap()' 调用 'highlight_columns()' 方法来突出显示指定的列,然后显示突出显示的列。

import pandas as pd
# a user-defined method to highlight the data
def highlight_columns(value):
   color = ''
   if value % 2 == 0:
      color = 'background-color: blue'
   elif value % 3 == 0:
      color = 'background-color: orange'
   return color
# Creating a sample DataFrame using pandas
data = {'Number': [12, 15, 18, 21, 24]}
df = pd.DataFrame(data)
# Uisng highlight_columns() method to the 'Number' column
highlighted_df = df.style.applymap(highlight_columns)
# to show the columns
display(highlighted_df)

输出

示例 2

在以下示例中,我们将根据给定条件突出显示列的特定数据。

方法

  • 创建一个用户定义的方法,该方法以 'value' 作为参数并返回背景颜色。此方法将检查值是否大于 50。如果是,则颜色将设置为黑色;否则,颜色将保持为空。

  • 创建一个名为 'data' 的字典,其中包含三个键:'Name'、'Age' 和 'Score'。每个键都与其关联的列表作为值。

  • 然后,使用 'applymap()' 调用 'highlight_columns()' 方法来突出显示指定的列,然后使用名为 'display()' 的内置方法显示列的突出显示数据。此方法将仅应用于 DataFrame 的 'Age' 和 'Score' 列。

import pandas as pd
# a user-defined method to highlight the data
def highlight_columns(value):
   color = 'background-color: black' if value > 50 else ''
   return color
# Creating a sample DataFrame using pandas
data = {'Name': ['Ram', 'Shyam', 'Shrey'],
      'Age': [35, 42, 28],
      'Score': [75, 60, 90] }
df = pd.DataFrame(data)
# Uisng highlight_columns() method to the 'Age' and 'Score' columns
highlighted_df = df[['Age', 'Score']].style.applymap(highlight_columns)
# to show the columns
display(highlighted_df)

输出

示例 3

在以下示例中,我们将使用 applymap() 方法突出显示所有三个列。为此,我们只需要将 'color' 变量设置为 'black',而无需像在之前的示例中那样指定任何条件。

import pandas as pd
# a user-defined method to highlight the data
def highlight_columns(value):
   color = 'background-color: black'
   return color
# Creating a sample DataFrame using pandas
data = {'Name': ['Ram', 'Shyam', 'Shrey'],
      'Age': [35, 42, 28],
      'Score': [75, 60, 90]}
df = pd.DataFrame(data)
# Uisng highlight_columns() method to the 'Age' and 'Score' columns
highlighted_df = df[['Name', 'Age', 'Score']].style.applymap(highlight_columns)
# to show the columns
display(highlighted_df)

输出

结论

我们从介绍问题陈述开始本文,即突出显示 Pandas DataFrame 的特定列。然后,我们讨论了一种可能的解决方案,即利用内置方法 applymap(),并提供了三个不同的示例来理解其用法。

更新于: 2023-07-21

434 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.