Как по-разному выделить каждое уникальное строковое значение в одном столбце в Pandas кадре данных? - PullRequest
1 голос
/ 09 апреля 2020

У меня есть датафрейм в Pandas, и я хочу сделать его немного более читаемым для пользователя. Там много столбцов / строк и смесь строк и чисел.

У меня есть столбец, назовем его «Тип», который имеет около 5 уникальных возможных значений, скажем, «Фрукты», «Овощи», «Бобовые». ',' Liquid ',' Meat '.

Я хочу, чтобы' Fruit 'всегда выделен, скажем,' yellow '. 'Vegetable' всегда должен иметь фоновый цвет 'green', et c.

Как мне создать этот стиль в Pandas?

enter image description here

Я сталкиваюсь с множеством проблем, поскольку это не типичный вариант использования для этого (в большинстве стилей предполагается, что целые числа / числа с плавающей запятой подсвечиваются).

Я пытался использовать applymap, но не могу понять, как заставить его выделить строку и только в одном столбце.

Спасибо!

1 Ответ

1 голос
/ 09 апреля 2020

Используйте систему стилей :

def styler(col):
    # We only want to apply style to the Type column
    if col.name != 'Type':
        return [''] * len(col)

    bg_color = col.map({
        'Fruit': 'yellow',
        'Vegetable': 'green',
        'Liquid': 'rgb(0,0,255)',
    }).fillna('') # a fallback for fruits we haven't colorized
    return 'background-color:' + bg_color

df.style.apply(styler)

Используются значения цвета CSS Характеристики цвета

...