为一列熊猫数据框着色

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于为一列熊猫数据框着色的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫中将多列合并为一列

如何在熊猫数据框中用不同颜色为布尔值着色

用第一个值减去熊猫数据框中的一列

熊猫数据框:按列子集+按另一列分组

熊猫数据框按列位置分组

将函数应用于熊猫中数据框的每一列