首页 > 解决方案 > 按其值着色 df 单元格

问题描述

我想创建一个熊猫数据框,每个单元格都根据其值进行着色,这意味着大数字的颜色会比小数字的颜色深。此外,我希望左上角和右下角的单元格为绿色,右上角和左下角的单元格为红色。类似的东西:

在此处输入图像描述

我最接近的是:

df = pd.DataFrame(np.array([[16, 20], [5, 4]]))
color1 = sns.light_palette("green", as_cmap=True)
color2 = sns.light_palette("red", as_cmap=True)

df = df.style.background_gradient(cmap=color1, subset=pd.IndexSlice[[1,0], [1,0]]).background_gradient(
    cmap=color2, subset=pd.IndexSlice[1,0]).background_gradient(cmap=color2, subset=pd.IndexSlice[0, 1])

但它用相同的颜色为右上角和左下角的单元格着色,而不是根据值渐变。

有可能做我想做的事吗?

标签: python

解决方案


推荐阅读