У меня есть несколько других постов, но я в конечном итоге пытаюсь сделать это «определенные» значения цветового кода. Теперь есть три представляющих интерес столбца, которые я хочу выделить, используя функциональность стилей в пандах, использующих python 3. В этом случае яя не уверен, должен ли я работать в строках или столбцах, потому что существуют разные подходы к проблеме
Первый столбец - это flt_cat (т. е. категория полета). Конкретными значениями могут быть NIL, VLIFR, LIFR, IFR, MVFR, VFR. Конкретные цвета должны быть белыми, фиолетовыми, оранжевыми, красными, желтыми и зелеными.
Если только flt_cat - это VFR, pd.Categorical не работает, поэтому я думаю, что мне нужно указать значения
Второй интересующий столбец - это vis (т.е. видимость) в диапазоне от 0 до 10.
Третий интересующий столбец - cloud_hgt (то есть высота облака) в диапазоне 0-9999
Цветовые коды: ['# FFFFFF, # 9400D3', '# FFA500', '# FF0000',' # FFFF00 ',' # 00b050 ']
У меня есть код
def cloud_height_style_function(vals):
return pd.cut(vals,[-np.inf,199,499,999,3000, np.inf], labels=[f'backngroud-color: {c}' for c in
['#9400D3','#FFA500','#FF0000','#FFFF00','#00b050']])
def visibility_style_function(vals):
return pd.cut(vals,[-np.inf,0.45,0.9,2.9,5, np.inf],labels=[f'background-color: {s}' for s in
['#9400D3','#FFA500','#FF0000','#FFFF00','#00b050']])
g = pd.Categorical(df['flt_cat']).codes
df1=[]
hex_color = ['#9400D3','#FFA500','#FF0000','#FFFF00','#00b050']
highlighted=df.style.apply(cloud_height_style_function,subset=
['cld_hgt']).apply(visibility_style_function,subset=['vis']).apply(lambda x: ['background-color: %s'
% (hex_color[i]) for i in g], subset=['flt_cat']).render()
with open('myhtml.html','w') as f:
f.write(highlighted)
Вот кадр данных
icao msg_type time dt ddd ff gg flt_cat vis cld_hgt cld_type present_wx vis_obc
0 KLAX Routine 2019-10-14 00:53 1:00 260 10 -9999 VLIFR 10.00 100 BKN None -9999
1 KLAX Routine 2019-10-14 01:53 1:00 240 9 -9999 LIFR 10.00 200 BKN None -9999
2 KLAX Routine 2019-10-14 02:53 1:00 260 6 -9999 LIFR 0.50 400 BKN None -9999
3 KLAX Routine 2019-10-14 03:53 1:00 250 5 -9999 LIFR 0.75 500 BKN None -9999
4 KLAX Routine 2019-10-14 04:53 1:00 240 4 -9999 IFR 1.00 900 BKN None -9999
5 KLAX Routine 2019-10-14 05:53 3:00 250 5 -9999 IFR 2.00 1000 BKN None -9999
6 KLAX Routine 2019-10-14 08:53 1:00 20 5 -9999 MVFR 3.00 1900 BKN None -9999
7 KLAX Routine 2019-10-14 09:53 1:00 320 3 -9999 MVFR 4.00 2000 BKN None -9999
8 KLAX Routine 2019-10-14 10:53 1:00 0 0 -9999 MVFR 5.00 2200 OVC None -9999
9 KLAX Routine 2019-10-14 11:53 NaN 30 5 -9999 MVFR 8.00 3000 BKN None -9999
10 KLAX Routine 2019-10-14 12:53 NaN 40 4 -9999 VFR 10.00 3500 BKN None -9999
Вот вывод:
[
]
Есть несколько других статей, близких к тому, что мне нужно, но нет avil