PythonPandas:突出显示小于0的最小值

irlmq6kh  于 2023-03-21  发布在  Python
关注(0)|答案(1)|浏览(140)

我有一个数据框,我想突出显示最大值和最小值。但不包括“”突出显示最小值
基本上从〉0开始最小高光
这是我目前掌握的情况:

cols_to_highlight = allContainer_circle_fillstate.columns[4:]
allContainer_circle_fillstate = allContainer_circle_fillstate.style.highlight_max(subset=cols_to_highlight, color='red', axis=0)\
                                    .highlight_min(subset=cols_to_highlight, color='lightgreen', axis=0)
wgmfuz8q

wgmfuz8q1#

使用numpy.where将不太像0的值替换为缺失值:

np.random.seed(123)

f = lambda x: f'col{x+1}'
allContainer_circle_fillstate=pd.DataFrame(np.random.choice([1, 7, 0, 2], 
                                                           size=(5,10))).rename(columns=f)
print (allContainer_circle_fillstate)

   col1  col2  col3  col4  col5  col6  col7  col8  col9  col10
0     0     7     0     0     1     0     0     7     2      0
1     2     7     0     7     1     7     0     2     7      1
2     0     1     2     7     2     0     7     1     1      1
3     1     7     2     2     0     1     2     0     1      2
4     1     7     1     2     7     2     1     1     1      0

cols_to_highlight = allContainer_circle_fillstate.columns[4:] 

def highlight_max(s, props=''):
    return np.where((s == np.nanmax(s.values)), props, '')

def highlight_min(s, props=''):
    return np.where((s == np.nanmin(np.where(s > 0, s.values, np.nan))), props, '')

(allContainer_circle_fillstate.style.apply(highlight_max, subset=cols_to_highlight, props='color:red', axis=0)
                                    .apply(highlight_min, subset=cols_to_highlight, props='color:lightgreen', axis=0))

相关问题