如何用Pandas Style函数为符合列值的行设置黄色背景与粗体
解决Pandas DataFrame行同时设置黄色背景和粗体的问题
你之前的错误在于用了错误的方式组合CSS样式,Pandas的样式系统要求每个单元格的样式是单个字符串,多个CSS属性需要用分号;分隔,而不是用&或字典格式。
修正后的完整代码
import pandas as pd df = pd.DataFrame({"A" : [14, 4, 5, 4, 1], "B" : [5, 2, 54, 3, 2], "C" : [20, 20, 7, 3, 8], "D" : [14, 3, 6, 2, 6], "E" : [23, 45, 64, 32, 23]}) def highlight(s): if s.C == 7: # 把两个CSS样式用分号合并到同一个字符串中 return ['background-color: yellow; font-weight: bold'] * len(s) else: # 返回空字符串使用默认样式,无需强制设置白色背景 return [''] * len(s) df.style.apply(highlight, axis=1)
错误原因说明
- 你尝试的
&是Python的按位与运算符,不能用来拼接CSS样式字符串,完全不符合样式系统的要求。 - 字典格式也不是
style.apply期望的输入,它只接受字符串形式的CSS声明,多个属性用分号分隔即可实现多样式叠加。
内容的提问来源于stack exchange,提问作者raml5
相关产品推荐
相关产品推荐

