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

Python 使用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’设置为’Age’和’Score’的列名,并将’Name’的列名设置为’White’。

  • 然后,使用’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

输出

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

示例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

输出

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

示例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

输出

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

结论

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程