Pandas:如何对单元格应用条件格式


您可以使用df.style.applymap()函数将条件格式应用于 pandas DataFrame 中的单元格。

下面的例子展示了如何在实际中使用这个功能。

示例:对 Pandas 中的单元格应用条件格式

假设我们有以下 pandas DataFrame,其中包含有关各种篮球运动员的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [4, 5, 5, 4, 9, 12, 11, 8],
                   ' rebounds ': [3, 9, 12, 4, 4, 9, 8, 2]})

#view DataFrame
print (df)

   points assists rebounds
0 18 4 3
1 22 5 9
2 19 5 12
3 14 4 4
4 14 9 4
5 11 12 9
6 20 11 8
7 28 8 2

我们可以使用以下代码将浅绿色背景应用于 DataFrame 中值小于 10 的每个单元格:

 #define function for conditional formatting
def cond_formatting (x):
    if x < 10 :
        return ' background-color: lightgreen '
    else :
        return None
    
#display DataFrame with conditional formatting applied    
df. style . applymap (cond_formatting)

熊猫条件格式

请注意,DataFrame 中值小于 10 的每个单元格现在都有浅绿色背景。

注意:如果条件格式化在 Jupyter 笔记本中不起作用,请确保首先运行%pip install Jinja2命令。

我们还可以使用颜色字体粗细参数来应用更复杂的条件格式。

以下示例展示了如何执行此操作:

 #define function for conditional formatting
def cond_formatting (x):
    if x < 10 :
        return ' background-color: lightgreen; color:red; font-weight:bold '
    elif x < 15 :
        return ' background-color:yellow '
    else :
        return None
    
#display DataFrame with conditional formatting applied    
df. style . applymap (cond_formatting) 

pandas 具有多个条件的条件格式

以下是条件格式化函数在此示例中的工作原理:

  • 对于小于10 的值,使用浅绿色背景和粗体红色字体
  • 对于值≥ 10但小于15 的值,使用黄色背景
  • 对于大于15的值,不要使用任何条件格式

您可以随意使用任意数量的ifelifelse函数,将任意数量的条件格式规则应用于 DataFrame 中的单元格。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何向 Pandas DataFrame 添加表格标题
如何显示 Pandas DataFrame 中的所有行
如何显示 Pandas DataFrame 的所有列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注