Фрейм данных Python Pandas, использующий стилизацию столбцов с определенными значениями с использованием html и css - PullRequest
0 голосов
/ 24 октября 2019

У меня есть несколько других постов, но я в конечном итоге пытаюсь сделать это «определенные» значения цветового кода. Теперь есть три представляющих интерес столбца, которые я хочу выделить, используя функциональность стилей в пандах, использующих 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

Вот вывод:

[enter image description here]

Есть несколько других статей, близких к тому, что мне нужно, но нет avil

Объединение панд "data frame.style" объектов и выводв html

Pandas Styling с использованием условных выражений

Измените цвет текста внутри HTML-таблицы Python таблицы данных pandas, используя стили и css

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