#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', ''))
)