Использование стиля панды для придания цветов некоторым строкам с определенным условием

Это выходные данные pandas в формате excel:

Id      comments     number
1       so bad        1
1       so far        2
2       always        3
2       very good     4
3       very bad      5
3       very nice     6
3       so far        7
4       very far      8
4       very close    9
4       busy          10

Я хочу использовать pandas, чтобы дать цвет (например, серый цвет) строкам, для которых их значение Id columnявляется четным. Например, строки 3 и 4 имеют четные Idномера, а строки 5, 6 и 7 имеют нечетные Idномера. Есть ли какой-либо способ использовать панд для этого?

1 ответ

  1. Как поясняется в документации http://pandas.pydata.org/pandas-docs/stable/style.html то, что вы в основном хотите сделать, это написать функцию стиля и applyее к объекту стиля.

    def _color_if_even(s):
        return ['background-color: grey' if val % 2 == 0 else '' for val in s]
    

    и вызовите его на мой объект Styler, т. е.,

    df.style.apply(_color_if_even, subset=['id'])