繁体   English   中英

pandas 基于其他列值的颜色单元格

[英]pandas color cell based on value of other column

我想根据另一列的值在一列的 DataFrame 的红色单元格中着色。

这是一个例子:

df = pd.DataFrame([
  { 'color_A_in_red': True , 'A': 1 },
  { 'color_A_in_red': False , 'A': 2 },
  { 'color_A_in_red': True , 'A': 2 },
])

应该给: 彩色_df

我知道如何将 df 的单元格涂成红色,但仅基于该单元格的值,而不是另一个单元格的值:

df_style = df.style
df_style.applymap(func=lambda x: 'background-color: red' if x == 2 else None, subset=['A'])
df_style

wring_color_df

有没有办法根据另一列的值为 DataFrame 的单元格着色?

使用自定义 function 为 styles 的 DataFrame 是最灵活的解决方案:

def highlight(x):
    c = f"background-color:red" 
    #condition
    m = x["color_A_in_red"]
    # DataFrame of styles
    df1 = pd.DataFrame('', index=x.index, columns=x.columns)
    # set columns by condition
    df1.loc[m, 'A'] = c
    return df1


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM