使用 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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告