Изменить цвет текста в строке датафрейма по условию

У меня есть датафрейм df_df1

df_df1

Мне нужно изменить цвет текста в тех строках (полностью всю строку), в которых значения ячеек по столбцу/ам column5 и/или column6 удовлетворяют условиям x < 0 и x >= 100.

Я использую следующий код:

df_df1.style.map(lambda x: (x<0 and "color: grey") or "color: black")

На выходе получаю:

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

Как вы можете заметить, я использовал пока только одно условие x < 0. Такие значения есть в column5 и/или column6 в строке с индексом 3. Но я хочу, чтобы в таком случае изменился цвет всей строки (а тут значения в column2 и column4 остались черными).

Теперь добавлю в код второе условие x >= 100:

df_df1.style.map(lambda x: (x<0 and "color: grey") or (x>100 and "color: grey") or "color: black")

На выходе получу:

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

У меня закрасились все подходящие значения, хотя мне надо, чтобы серыми стали строки с индексом 3 и 6, потому что в этих строках в столбцах column5 и column6 есть значения, удовлетворяющие нужным условиям

Помогите, пожалуйста, подсказками, что можно сделать, чтобы получить желаемый результат на выходе


Ответы (1 шт):

Автор решения: Алексей Р
df = pd.DataFrame(np.random.randint(-10, 150, 100).reshape(10, -1)).add_prefix('column', axis=1)
df_style = df.style.apply(lambda x: ["color: black"] * len(x) if 0 <= x.column5 < 100 and 0 <= x.column6 < 100 else ["color: grey"] * len(x), axis=1)
df_style.to_excel('styler.xlsx')

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

→ Ссылка