对比DataFrame指定列与规格阈值 不符合条件时单元格标红实现方法
可以用 pandas 内置的 Styler 模块实现单元格条件标红,针对你的需求实现代码如下:
import pandas as pd # 构造你给出的示例DataFrame df = pd.DataFrame( data={ "min": [1.124], "max": [1.14], "SPEC_MIN": [1.095], "SPEC_MAX": [1.2] }, index=["V_PTAT3V3[V]"] ) # 定义标红规则函数 def highlight_err(val, check_type, spec_val): if check_type == "min" and val < spec_val: return "color: red" elif check_type == "max" and val > spec_val: return "color: red" return "" # 逐行应用样式规则 styled_df = df.style\ .apply( lambda row: [highlight_err(row["min"], "min", row["SPEC_MIN"])], axis=1, subset=["min"] )\ .apply( lambda row: [highlight_err(row["max"], "max", row["SPEC_MAX"])], axis=1, subset=["max"] ) # Jupyter环境下直接运行变量即可渲染出带样式的表格 # 导出为带样式的HTML文件可以执行:styled_df.to_html("result.html")
补充说明:
- 上述代码实现的是字体标红,如果需要背景标红,把返回的样式从
color: red改成background-color: red即可 - 你可以修改示例数据测试规则,比如把max值改为1.3,运行后就能看到max列对应单元格自动标红
内容的提问来源于stack exchange,提问作者Confused
相关产品推荐
相关产品推荐

