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


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

使用 apply() 突出显示 Pandas DataFrame 的 Python 程序

在直接跳转到示例程序之前,有必要讨论 Pandas 和 apply() 的基础知识。

Pandas

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

apply() 方法

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

语法

style.apply(nameOfMethod)

示例 1

以下示例显示了 apply() 方法的实际实现。

方法

  • 第一步是用引用名称“pd”导入 pandas 库。

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

  • 现在,定义一个数据框来表示键作为列名,其值作为该列的数据。

  • 定义一个名为“highlight_columns”的用户定义方法以及参数“col”。此方法将把“color”变量设置为“skyblue”(对于“Age”和“Score”列)和“White”(对于“Name”列),然后返回。

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

import pandas as pd # defining a DataFrame data = { 'Name': ['Ram', 'Shyam', 'Mohan', 'Shrey'], 'Age': [25, 30, 35, 40], 'Score': [80, 90, 85, 95] } df = pd.DataFrame(data) # a user-defined method to highlight specific columns def highlight_columns(col): color = 'skyblue' if col.name in ['Age', 'Score'] else 'white' return ['background-color: {}'.format(color) for _ in col] # calling method using apply() styled_df = df.style.apply(highlight_columns) # to show the highlighted column styled_df

输出

示例 2

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

import pandas as pd # defining a DataFrame data = { 'Name': ['Ram', 'Shyam', 'Mohan', 'Shrey'], 'Age': [25, 30, 35, 40], 'Score': [80, 90, 85, 95] } df = pd.DataFrame(data) # a user-defined method to highlight specific columns def highlight_columns(col): color = 'blue' return ['background-color: {}'.format(color) for _ in col] # calling method using apply() styled_df = df.style.apply(highlight_columns) # to show the highlighted portion styled_df

输出

示例 3

在这个示例中,我们将根据定义的条件仅突出显示给定列的特定数据。

方法

  • 与前两个示例一样,我们将导入 pandas 库并创建一个字典。

  • 在“highlight_columns()”方法内,使用 elif 语句定义多个条件来突出显示列。

  • 如果列名为“Age”,我们将遍历列中的每个值,并检查它是否大于 30。如果是,我们将背景色设置为蓝色。

  • 如果列名为“Score”,我们将遍历列中的每个值,并检查它是否大于或等于 90。如果是,我们将背景色设置为绿色。

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

import pandas as pd # defining a DataFrame data = { 'Name': ['Ram', 'Shyam', 'Mohan', 'Shrey'], 'Age': [25, 30, 35, 40], 'Score': [80, 90, 85, 95] } df = pd.DataFrame(data) # method for highlighting specific columns def highlight_columns(col): if col.name == 'Age': return ['background-color: blue' if val > 30 else '' for val in col] elif col.name == 'Score': return ['background-color: green' if val >= 90 else '' for val in col] else: return ['' for _ in col] # calling the method using apply() styled_df = df.style.apply(highlight_columns) # to display the highlighted DataFrame styled_df

输出

结论

在本文中,我们学习了如何在突出显示指定列的数据时使用 apply() 方法。它与 Pandas 的 style 模块一起使用。我们还了解了如何创建 Pandas DataFrame。

更新于:2023年7月21日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告