Используя python 3 на ноутбуке jupyter, я пытаюсь отобразить кадр данных pandas в виде таблицы, в которой выделены некоторые ячейки. Я нашел это хорошее руководство https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html
для форматирования, как я хочу, однако он как-то портит десятичные цифры некоторых индексов.
В частности, я начинаю с этого фрейма данных metrics
, где столбец threshold
- это индекс (правильно отображается с двумя десятичными цифрами):
метрика данных кадра
И я получаю следующее table
, которое имеет тип pandas.io.formats.style.Styler:
стиль табличного формата
Как видите, ячейки подсвечены, но некоторые индексы появляются с большим количеством цифр.
Код, который я использую, указан ниже:
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)
Тем не менее мне удалось исправить визуализацию в кадре данных, но не в стиле.
Любой совет?