首页 > 解决方案 > 根据行标准将样式应用于(熊猫)DataFrame 索引

问题描述

我想将样式应用于我的 df 的索引是否满足每行标准。

我的代码是

data = {"Labels": ["foo", "bar"], "Values":[1, -1]}
df = pd.DataFrame(data)
df = df.set_index('Labels')
df

Label如果值为正,我希望列中有黄色背景。我试过了

df.style.apply(lambda x:  ['background-color: yellow' if x[1]>0 else '', ''])

但没有运气。我做错了什么?

标签: pythonpython-3.xpandaspandas-styles

解决方案


x在你的 lambda 函数中是一个pd.Series.

x[1]只是该系列的第二个值。在您的示例中,只是-1. 因为-1 > 0,什么都没有发生。

您可能想要检查 的每个值x如文档中的示例所示

df.style.apply(lambda x:['background-color: yellow' if s>0 else '' for s in x])

同样根据文档,在限制部分,

只能设置值的样式,而不是索引或列


推荐阅读