You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Streamlit中按值为DataFrame单元格着色:≥50绿,否则红?

Streamlit中DataFrame按指定规则着色单元格的实现

完整代码实现

import pandas as pd
import streamlit as st

data = {
    'Category': ['A', 'B', 'C'],
    'Value': [25, 75, 50]
}
df = pd.DataFrame(data)

# 定义根据数值返回背景色的函数
def color_value_cell(val):
    return 'background-color: #7ccd7c' if val >= 50 else 'background-color: #ff6b6b'

# 仅对Value列应用自定义着色规则
styled_df = df.style.applymap(color_value_cell, subset=['Value']).format(precision=2)

# 在Streamlit中渲染带样式的DataFrame
st.dataframe(styled_df)

关键说明

  • 自定义color_value_cell函数:通过条件判断为不同区间的数值返回对应CSS背景色样式(示例用柔和的浅绿、浅红,可替换为任意十六进制颜色码)
  • applymap方法:配合subset=['Value']参数,精准对目标列应用样式,不影响其他列
  • 保留format(precision=2):确保数值按指定精度展示,与原有需求保持一致
  • 直接传入st.dataframe:Streamlit支持渲染Pandas Styler对象,可正常显示带背景色的单元格,替代之前的渐变着色效果

内容的提问来源于stack exchange,提问作者Megan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:08:12