使用 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。