【问题标题】:Colouring one column of pandas dataframe为一列熊猫数据框着色
【发布时间】:2017-11-07 08:39:28
【问题描述】:

我有一个数据框,想使用.style 突出显示第一列。

我不确定是否需要使用循环或函数

【问题讨论】:

    标签: pandas dataframe colors styles


    【解决方案1】:

    你可以像这样在一行中解决它:

    df.style.set_properties(**{'background-color': 'red'}, subset=['A'])
    

    其中子集是要应用所需属性的列名列表。

    结果与@jezrael 显示的相同 您可以检查其他属性和样式的可能性in pandas' website

    【讨论】:

    • 用你的一行代码,你能应用到几列,每列用不同的颜色吗?
    • @sqllearner 您可以将相同的颜色应用于多个列,只需将它们添加到子集中,例如 df.style.set_properties(**{'background-color': 'red'}, subset= ['A','C'])。但我不确定你可以在一行上应用不同的颜色。根据文档,set_properties 是:“用于设置一个或多个非数据相关属性”。
    • @sqllearner 你可以用两行来解决它:\col_ref = {'A': 'background-color: red', 'C':'background-color:yellow'} \ df.style.apply(lambda x: pd.DataFrame(col_ref, index=df.index, columns=df.columns).fillna(''), axis=None)
    【解决方案2】:

    我认为您需要自定义函数,该函数返回 DataFrame 第一列的颜色:

    np.random.seed(100)
    df =  pd.DataFrame(np.random.randn(5, 3), columns=list('ABC'))
    
    def highlight_col(x):
        r = 'background-color: red'
        df1 = pd.DataFrame('', index=x.index, columns=x.columns)
        df1.iloc[:, 0] = r
        return df1    
    df.style.apply(highlight_col, axis=None)
    

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 2019-10-12
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多