熊猫的风格。如何突出对角线元素[英] Pandas style: How to highlight diagonal elements

本文是小编为大家收集整理的关于熊猫的风格。如何突出对角线元素的处理方法,想解了熊猫的风格。如何突出对角线元素的问题怎么解决?熊猫的风格。如何突出对角线元素问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想知道如何使用 df.style 方法突出显示 pandas 数据框的对角线元素.

我找到了这个官方链接,他们在其中讨论如何突出最大值,但我很难创建突出对角线元素的函数.

这是一个例子:

import numpy as np
import pandas as pd

df = pd.DataFrame({'a':[1,2,3,4],'b':[1,3,5,7],'c':[1,4,7,10],'d':[1,5,9,11]})

def highlight_max(s):
    '''
    highlight the maximum in a Series yellow.
    '''
    is_max = s == s.max()
    return ['background-color: yellow' if v else '' for v in is_max]

df.style.apply(highlight_max)

这给出以下输出:在此处输入图片描述

我只想在对角线元素 1、3、7、11 上突出显示黄色.

怎么做?

推荐答案

另外一个答案还不错,但是我已经写了这样......

def style_diag(data):
    diag_mask = pd.DataFrame("", index=data.index, columns=data.columns)
    min_axis = min(diag_mask.shape)
    diag_mask.iloc[range(min_axis), range(min_axis)] = 'background-color: yellow'
    return diag_mask

df = pd.DataFrame({'a':[1,2,3,4],'b':[1,3,5,7],'c':[1,4,7,10],'d':[1,5,9,11]})
df.style.apply(style_diag, axis=None)

本文地址:https://www.itbaoku.cn/post/1728055.html