首页 > 解决方案 > 在 DataFrame 中以粗体显示一些值

问题描述

我正在尝试使用以下函数将一些值以粗体显示:

def highlight(x):
    return ['font-weight: bold' if v > 0.5 else ''
                for v in x]

Variable_Names =['FACTOR1','FACTOR2','FACTOR3'] 
rows = ['ECON1','ECON2','ECON2','FOOD1','FOOD2','FOOD3','ENV1','ENV2','HEA1', 'HEA2', 'HEA3','PERS1','PERS2','PERS3',
                 'COM1','COM2', 'POL1','POL2'] 
MatrixFactor = pd.DataFrame(fa.loadings_, index=rows, columns=Variable_Names)

print(MatrixFactor)

MatrixFactor 输出如下所示:

       FACTOR1   FACTOR2   FACTOR3
ECON1  0.882718 -0.384788 -0.268527
ECON2 -0.203138  0.840794  0.501013
ECON2  0.542073 -0.239280 -0.804945
FOOD1  0.931340  0.057863  0.358672
FOOD2  0.391803  0.413689  0.821324
FOOD3  0.277097  0.959034  0.048014
ENV1   0.997853  0.018340  0.057592
ENV2  -0.270908 -0.057319 -0.960368

运行以下命令时出现的错误:

display(MatrixFactor.reset_index().style.applymap(highlight))

ValueError: too many values to unpack (expected 2)

我不确定这里出了什么问题。当我在另一个上尝试突出显示功能时dataframe,它工作正常。

也尝试过display(MatrixFactor.style.applymap(highlight)),但这给出了这个错误:

ValueError: style is not supported for non-unique indices.

标签: python-3.xpandasdataframe

解决方案


通过参数Styler.apply仅选择数字列使用:subset

MatrixFactor.reset_index().style.apply(highlight, subset=Variable_Names)

或更改功能Styler.applymap

def highlight(x):
    return 'font-weight: bold' if x > 0.5 else ''

MatrixFactor.reset_index().style.applymap(highlight, subset=Variable_Names)

推荐阅读