使用pandas.io.formats.style.Styler时如何格式化索引十进制数字?

时间:2019-04-18 11:00:08

标签: python pandas indexing formatting jupyter-notebook

我在jupyter笔记本上使用python 3,试图将pandas数据框显示为表格,其中突出显示了一些单元格。我找到了这个不错的指南https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html 进行格式化,但是却以某种方式弄乱了某些索引的十进制数字。

具体来说,我从该数据帧metrics开始,其中列threshold是索引(正确显示为2个十进制数字):

metrics dataframe

然后我得到以下table类型的pandas.io.formats.style.Styler:

table format style

如您所见,单元格被突出显示,但有些索引却带有很多数字。

我正在使用的代码报告如下:

def highlight_likewise_gray(s):
    '''
    highlight the maximum in grayscale model.
    '''
    is_equivalent = (s >= F1_score_gray_best - 0.02)
    return ['background-color: yellow' if v else '' for v in is_equivalent]

def highlight_likewise_rgb(s):
    '''
    highlight the maximum in RGB model.
    '''
    is_equivalent = (s >= F1_score_rgb_best - 0.02)
    return ['background-color: yellow' if v else '' for v in is_equivalent]

table = metrics.style.apply(highlight_likewise_rgb,subset=['F1_rgb']).apply(highlight_likewise_gray,subset=['F1_gray'])

我怀疑这可能是由于创建数据框时 pd.Index 转换索引的 np.arange 的怪异方式引起的。

threshold = np.arange(start=0, stop=0.6, step=0.05)
pandas.Index(threshold)

尽管如此,我还是设法在数据框中修复了可视化,但没有在样式中修复。

有什么建议吗?

0 个答案:

没有答案