如何使用pandas根据DataFrame列值为符合条件的整行设置着色
pandas 条件整行着色实现方案
直接用pandas原生的Styler模块就能实现,不需要安装额外第三方库,兼容Jupyter环境展示、HTML导出等常用场景,具体操作如下:
- 先构造和示例结构一致的测试DataFrame
import pandas as pd df = pd.DataFrame({ 'name': ['John', 'Mike', 'Sarah', 'Linda', 'Tom'], 'value': [5, 3, 2, 5, 4] })
- 编写自定义行样式判断函数,逐行检查
value列的取值,匹配目标值时给整行返回指定的背景色样式
def mark_target_row(row, target_val=5, bg_color='#fff2cc'): if row['value'] == target_val: # 匹配到目标值时,给当前行所有单元格设置背景色 return [f'background-color: {bg_color}'] * len(row) # 不匹配就返回空样式,保持默认显示效果 return [''] * len(row)
- 给DataFrame应用写好的样式规则,参数
axis=1表示按行维度遍历判断
# 生成带样式的表格对象 styled_df = df.style.apply(mark_target_row, axis=1)
补充说明:标记颜色可以自行修改,把
bg_color换成需要的十六进制色值即可,比如#ffcccc是浅红、#e5f5e0是浅绿;如果要调整判断规则,直接修改函数里的if判断逻辑就行,支持多条件组合筛选。
在Jupyter Notebook/Lab里直接输出styled_df就能看到效果,示例中John、Linda所在的两行(value列值为5)会被统一标记为设置的颜色。如果需要把带样式的表格存到本地,可以用styled_df.to_html('着色后表格.html')导出为HTML文件。
内容的提问来源于stack exchange,提问作者rowipi
相关产品推荐
相关产品推荐

