使用其他列在Pandas中的条件样式

问题描述 投票:2回答:1

我搜索过,似乎无法在任何地方找到答案,所以希望它是可能的。我有一个数据框,为简单起见,我将在下面包含一个缩写版本。我想要做的是为样式应用自定义公式,或根据另一列中的值设置一个特定列的样式。

enter image description here

以此为例,我想突出显示当前列的单元格,其中Diff> Historic Standard Dev在该行中。

我已经探索了style.apply方法,但似乎无法找到一个有效的方法。任何帮助将不胜感激。

谢谢!

python pandas styling conditional-formatting
1个回答
2
投票

您可以通过DataFrame创建Styler.apply样式:

def select_col(x):
    c1 = 'background-color: red'
    c2 = '' 
    #compare columns
    mask = x['Diff'] > x['HistoricStandardDev']
    #DataFrame with same index and columns names as original filled empty strings
    df1 =  pd.DataFrame(c2, index=x.index, columns=x.columns)
    #modify values of df1 column by boolean mask
    df1.loc[mask, 'Current'] = c1
    return df1

df.style.apply(select_col, axis=None)

pic

© www.soinside.com 2019 - 2024. All rights reserved.