条件格式任务(我猜使用样式) Python、 Pandas
有一个有两列的盘子
第二个表应该突出显示 条件:
- 如果第一列数超过第二列,则呈绿色;
- 如果第一列数等于第二列数,则为黄色;
- 如果第一列数小于第二列数,则显示为红色。[
感谢您的帮助!
最佳答案
想法是创建新的 DataFrame,并按条件 Styler.apply
填充样式。 ,对于按条件设置行,使用 DataFrame.mask
:
def highlight(x):
c1 = 'background-color: green'
c2 = 'background-color: yellow'
c3 = 'background-color: red'
m1 = x.iloc[:, 0] > x.iloc[:, 1]
m2 = x.iloc[:, 0] == x.iloc[:, 1]
df1 = pd.DataFrame(c3, index=x.index, columns=x.columns)
return df1.mask(m1, c1).mask(m2, c2)
df.style.apply(highlight, axis=None)
编辑:
如果只需要设置一列,请使用numpy.select
:
def highlight(x):
c1 = 'background-color: green'
c2 = 'background-color: yellow'
c3 = 'background-color: red'
c = ''
m1 = x.iloc[:, 0] > x.iloc[:, 1]
m2 = x.iloc[:, 0] == x.iloc[:, 1]
df1 = pd.DataFrame(c, index=x.index, columns=x.columns)
df1.iloc[:, 1] = np.select([m1, m2], [c1, c2], default=c3)
return df1
关于python - Pandas 中的条件颜色格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56901393/