Функция стиля Python Pandas для выделения определенных столбцов при определенных условиях - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь написать функцию, которая сравнивает два столбца фрейма данных и выделяет только один столбец при совпадении условия.

Например, как показано ниже: у меня есть два столбца в фрейме данных («C1»,"С2").Я хочу повторить и сравнить каждое значение в обоих столбцах.Если C1> C2, выделите это значение в C1.Снизу (6 и 7) в C1 будут выделены.

Я получил приведенный ниже код из другого места, но будет полезно, если я смогу найти лучшее решение.

df = pd.DataFrame({'C1': [0,6,7], 'C2':[1,4,5]})
i = 0
def color_red(val):
    global i
    if not i > len(df['C1'])-1:
        color = 'red' if df['C1'][i] > df['C2'][i] else 'black'
        i+=1
    else:
        i = 0
        color = 'red' if df['C1'][i] > df['C2'][i] else 'black'
        i+=1
    return 'color: %s' % color
s = df.style.applymap(color_red,subset=['C1'])
s

1 Ответ

0 голосов
/ 20 сентября 2018

Вы можете использовать метод apply() с аргументом axis=1 для применения вашего стиля построчно:

df = pd.DataFrame({'C1': [0,6,7], 'C2':[1,4,5]})

def color_red(s):
    color = 'color: red' if s.iloc[0] > s.iloc[1] else 'color: black'
    colors = [color] + [''] * (s.size - 1)
    return colors

s = df.style.apply(color_red, axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...