我已经生成了一个 pandas 数据框,我想用它pd.DataFrame().style
来突出显示一些单元格。
v1 v2 v3 v4 v5
v1 0 1 1 1 0
v2 0 0 1 1 1
v3 0 0 0 0 0
v4 0 0 0 0 0
v5 0 0 0 0 0
我想为它的上下三角形以及对角线着色。为此,我正在执行以下操作:
计算上下三角形和对角线。
def triang(df): temp=df.copy() ut=np.triu(np.ones(df.shape),1).astype(np.bool) lt=np.tril(np.ones(df.shape),-1).astype(np.bool) temp=temp.where(ut==False, 'up') temp=temp.where(lt==False, 'lt') np.fill_diagonal(temp.values,'dg') return(temp) triang(mymat)
返回
v1 v2 v3 v4 v5
v1 dg up up up up
v2 lt dg up up up
v3 lt lt dg up up
v4 lt lt lt dg up
v5 lt lt lt lt dg
定义颜色函数
def color_vals(value): if value == 'up': color='orange' elif value=='lt': color='blue' else: color='black' return(color) color_vals('up') #'orange'
样式化数据框
triang(mymat).style.applymap(color_vals) #returns the same as triang(mymat)
我被困在风格部分(第 3 步)。我希望看到根据每个部分的颜色(上、下三角形和对角线)风格化的第一个矩阵( mymat
,带有0
和的矩阵)。1
我该如何做最后一步?
提前非常感谢。