我有一个 Pandas 数据框,然后将其写入 Excel 表:
我想根据“值”包含在“下限”和“上限”之间的条件对“值”列进行颜色编码。
到目前为止,我所做的是创建一个名为“在限制范围内”的额外列来检查条件是真还是假,但对于这种情况,我只能在熊猫中找到对“在限制范围内”列本身进行颜色编码的解决方案,而不是“值”列。
有没有办法根据另一列值进行颜色编码?
您可以使用自定义函数:
def color(df): out = pd.DataFrame(None, index=df.index, columns=df.columns) out['value'] = (df['value'] .between(df['lower limit'], df['upper limit']) .map({True: 'background-color: yellow'}) ) return out df.style.apply(color, axis=None)
带参数:
def color(df, value, low, high, color='red'): out = pd.DataFrame(None, index=df.index, columns=df.columns) out[value] = (df[value] .between(df[low], df[high]) .map({True: f'background-color: {color}'}) ) return out df.style.apply(color, value='value', low='lower limit', high='upper limit', color='yellow', axis=None)
输出: