Сортировка Dataframe по цвету после применения стиля - PullRequest
0 голосов
/ 13 июля 2020

Прошу прощения за свой английский sh, но я использовал переводчик Google

После долгой борьбы мне удалось «раскрасить» строку моего фрейма данных в зависимости от значения для сравнения.

Теперь мне нужно отсортировать в алфавитном порядке по столбцу «planta», «equipo», а также по цвету, если он «цветной», как указано выше.

Я не нашел ничего, что могло бы помочь мне в этом.

Также мне нужно, если можно вернуть Pandas .Dataframe, а не Style.Dataframa, так как я должен сгенерировать файл Excel и html этой таблицы

Это мой функция раскраски

#Funcion pinta en rojo fila si cumple con los parametros de entrada y el filtro
def color_negative_red(val,fal = None,op = None):
    #Var corresponde a el valor a medir de la fila
    #fal corresponde al valor de entrada con el cual se comparara
    #op corresponde a la operacion 1 = >=,2 = <=, 3= ==

    color = 'white'
    if(val != None and op != None):
        
        #print(val,type(val))
        #color = color if val <= 3.98 else 'black'
        if(op ==1):
            if(val <= fal):
                color = 'red'
           
                
        elif(op==2):
            if(val >= fal):
                color = 'red'
            
        elif(op==3):
            if(val == True):
                color = 'red'
         
                
        #'background-color: green'
        return 'background-color: %s' % color

Инструкция, которая копирует таблицу и сортирует ее по «planta» и «equipo»

sss = ss.copy().sort_values(by=['planta','equipo'])

Наконец, я применяю стиль к таблице

s = sss.style.\
    applymap(color_negative_red,fal = 3.98,op=1,subset=pd.IndexSlice[ss['sensor'] == 'h2s','Min RAW mA/V']).\
    applymap(color_negative_red,fal = 16.0,op=2,subset=pd.IndexSlice[ss['sensor'] == 'h2s','Max RAW mA/V']).\
    applymap(color_negative_red,fal = True,op=3,subset=pd.IndexSlice[ss['sensor'] == 'clo2','Max Diario sobre Max. Sensor']).\
    applymap(color_negative_red,fal = True,op=3,subset=pd.IndexSlice[ss['sensor'] == 'ch3sh','Cambio abrupto medicion']).\
    applymap(color_negative_red,fal = 15.0,op=1,subset=['Temperatura °C minima camara gases']).\
    applymap(color_negative_red,fal = 45.0,op=2,subset=['Temperatura °C maxima camara gases']).\
    applymap(color_negative_red,fal = 12.0,op=1,subset=['Minimo valor bateria']).\
    applymap(color_negative_red,fal = 90,op=1,subset=['Porcentaje de datos recibidos']).\
    to_excel('test.xlsx', engine='openpyxl')

Результатом документа Excel является это

Результат

Окончательный формат Dataframe

pandas.io.formats.style.Styler

Что не позволяет копировать / заказывать / или передавать to html и excel

Как мне сделать, чтобы результат моей таблицы был упорядочен «planta» и «equipo» и по цветному ряду, в дополнение к возможности создания файла excel и html?

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