У меня есть датафрейм, который выглядит следующим образом. Я хотел бы применить условный цвет к ячейкам в столбце «col» на основе их соответствующего значения в столбце «prb». Изображение справа - это то, где я до сих пор, но я не могу заставить работать «градиент».
Код ниже «работает», и проблема в том, что c1 явно определяется как «background-красный цвет'. Но это действительно должно быть условие, которое применяет карту цветов на основе значений в 'prb.'. Я подозреваю, что это гораздо более простой способ сделать это.
def select_col(x):
c1 = 'background-color: red'
c2 = ''
#compare columns
mask = abs(x['prb']) > 0
#DataFrame with same index and columns names as original filled empty strings
df1 = pd.DataFrame(c2, index=x.index, columns=x.columns)
#modify values of df1 column by boolean mask
df1.loc[mask, 'col'] = c1
return df1
df.style.apply(select_col, axis=None)
Это еще один «почти рабочий» метод. Тем не менее, обратите внимание, как цифры окрашены, а не слова - что является целью. Я также не мог понять, как получить этот, казалось бы, более легкий подход к работе. Любая помощь очень ценится.
import seaborn as sns
cm = sns.light_palette("green", as_cmap=True)
s = df.style.background_gradient(cmap=cm)
s
![enter image description here](https://i.stack.imgur.com/JtJp2.png)