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)
以下是条件格式化函数在此示例中的工作原理:
- 对于小于10 的值,使用浅绿色背景和粗体红色字体
- 对于值≥ 10但小于15 的值,使用黄色背景
- 对于大于15的值,不要使用任何条件格式
您可以随意使用任意数量的if 、 elif和else函数,将任意数量的条件格式规则应用于 DataFrame 中的单元格。
其他资源
以下教程解释了如何在 pandas 中执行其他常见操作:
如何向 Pandas DataFrame 添加表格标题
如何显示 Pandas DataFrame 中的所有行
如何显示 Pandas DataFrame 的所有列