Pandas Styler Subset列的值

时间:2019-11-22 15:36:17

标签: python pandas

我正在使用以下方法为数据框中的单元格着色:

import seaborn as sns

cm1 = sns.diverging_palette(h_pos=130, h_neg=10, s=99, l=55, n=99, as_cmap=True)

df_s = (df.style
    .background_gradient(cmap=cm1, subset=['col1']))

这成功将背景渐变应用于col1中的值

但是,我想要以下内容:

df_s = (df.style
    .background_gradient(cmap=cm1, subset=['col1'] < x))

哪个不起作用

想法是仅将梯度应用于col1中小于x的值,并显示col1 >= x未着色的完整数据框。

似乎应该有一种简单的方法来执行此操作,但是我似乎无法将参数设置为subset的正确格式。

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您需要使用pd.IndexSlice

import seaborn as sns

cm1 = sns.diverging_palette(h_pos=130, h_neg=10, s=99, l=55, n=99, as_cmap=True)
np.random.seed(123)
df = pd.DataFrame(np.random.randint(0,100,(5,5)), columns=[*'ABCDE'])
df.style.background_gradient(cmap=cm1, subset=pd.IndexSlice[df['C']<50, 'C'])

输出:

enter image description here