gpt4 book ai didi

python - Pandas Styler 按值对列进行子集化

转载 作者:行者123 更新时间:2023-12-01 15:20:28 25 4
gpt4 key购买 nike

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

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 的正确格式。

在此先感谢您的帮助!

最佳答案

你需要使用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

关于python - Pandas Styler 按值对列进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com