Числа не округлились после применения стилей панд

#pandas #pandas-styles

Вопрос:

Я округлил числа, прежде чем применять стили панд, это сработало нормально. Однако после применения стилей числа стали неокругленными. Я не понимаю этого.

примеры данных

 d = {'col1': ['a', 'b', 'c']*2, 'col2': [1.111, 1.112, 1.113] * 2}
df = pd.DataFrame(data=d)
df['col2'] = round(df['col2'], 2)
 
 
    col1 col2
0   a   1.11
1   b   1.11
2   c   1.11
3   a   1.11
4   b   1.11
5   c   1.11
 

применение стилей ко всей строке путем указания индекса

 df.style.apply(lambda x: ['background: pink' 
                                  if (x.name == 3 )
                                  else '' for i in x], axis=1)
 

введите описание изображения здесь

Идеальным результатом должно быть отображение округленных чисел и выделение индекса 3

Спасибо

Комментарии:

1. Если я округлю числа после применения функции, подсветка исчезнет

Ответ №1:

Стилист отличает «отображаемое значение от фактического«.

Если вы хотите переопределить поведение отображения, вы должны указать стиль формата:

 (
    df.style.format({'col2': "{:.2f}"})
        .apply(lambda _: np.where(df.index == 3, 'background: pink', ''))
)
 

стилизованный стол