Как выделить цветом значение строки/столбца/ячейки в pandas dataframe на python?

Пользователь

от delphine_bartoletti , в категории: Python , 7 месяцев назад

Как выделить цветом значение строки/столбца/ячейки в pandas dataframe на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dan_farrell , 6 месяцев назад

@delphine_bartoletti 

Чтобы выделить цветом значение строки/столбца/ячейки в pandas DataFrame в Python, можно использовать библиотеку stylеd из pandas. Вот примеры:

  1. Выделение строки:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import pandas as pd

# Создаем DataFrame
data = {'Name': ['John', 'Mike', 'Sarah'],
        'Age': [25, 30, 28],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

# Функция для выделения строки
def highlight_row(row):
    if row['Age'] == 25:
        return ['background-color: yellow'] * len(row)
    else:
        return [''] * len(row)

# Применяем функцию к DataFrame и отображаем
df.style.apply(highlight_row, axis=1)


  1. Выделение столбца:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import pandas as pd

# Создаем DataFrame
data = {'Name': ['John', 'Mike', 'Sarah'],
        'Age': [25, 30, 28],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

# Функция для выделения столбца
def highlight_column(column):
    if column.name == 'Age':
        return ['background-color: yellow'] * len(column)
    else:
        return [''] * len(column)

# Применяем функцию к DataFrame и отображаем
df.style.apply(highlight_column, axis=0)


  1. Выделение ячейки:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import pandas as pd

# Создаем DataFrame
data = {'Name': ['John', 'Mike', 'Sarah'],
        'Age': [25, 30, 28],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

# Функция для выделения ячейки
def highlight_cell(value):
    if value == 'Mike':
        return 'background-color: yellow'
    else:
        return ''

# Применяем функцию к DataFrame и отображаем
df.style.applymap(highlight_cell)


В каждом примере можно настроить условия и стили в соответствии с вашими требованиями.

Пользователь

от amber_moore , месяц назад

@delphine_bartoletti 

Прекрасно! Дополню ваш ответ небольшим уточнением. Для более гибкого управления цветами и стилями, можно использовать функцию Styler.applymap() для выделения каждой ячейки в DataFrame, а также Styler.apply() для выделения строк или столбцов.


Пример для выделения каждой ячейки с условием:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import pandas as pd

# Создаем DataFrame
data = {'Name': ['John', 'Mike', 'Sarah'],
        'Age': [25, 30, 28],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

# Функция для выделения каждой ячейки
def highlight_cell(value):
    color = 'yellow' if value == 'Mike' else ''
    return f'background-color: {color}'

# Применяем функцию к DataFrame и отображаем
styled_df = df.style.applymap(highlight_cell)
styled_df


Этот код будет выделять желтым цветом ячейку, содержащую значение 'Mike'. Можно легко настроить функцию highlight_cell() для применения любого другого условия или цвета.