为一列熊猫数据框着色
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)
【讨论】:
以上是关于为一列熊猫数据框着色的主要内容,如果未能解决你的问题,请参考以下文章