У меня есть .pivot_table с полями = True.
Я хочу запустить .style.bar и .style.background_gradient на нем, но проблема в том, что поля (итоги столбцов) также отформатированы и установлены на максимальное значение, поэтому они выглядят не описательными.
У меня было несколько идей о том, как решить эту проблему, однако ни одна из них не работает до сих пор:
- Пробовал как-то исключить последнюю строку (поля / столбцы итогов) из .style с использованием подмножества, но не получилось.
- Сохранение последней строки в отдельном фрейме данных. Удаление последней строки из исходного фрейма данных, применение .style и последующая конкатенация обоих фреймов данных, однако, здесь я получаю ошибку, что не могу объединить стилизованные фреймы данных.
Вот код:
import pandas as pd
import numpy as np
import seaborn as sns
df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
"bar", "bar", "bar", "bar"],
"B": ["one", "one", "one", "two", "two",
"one", "one", "two", "two"],
"C": ["small", "large", "large", "small",
"small", "large", "small", "small",
"large"],
"D": [1, 2, 2, 3, 3, 4, 5, 6, 7]})
df = df.pivot_table(values='D', index=['A','B'], columns=['C'], aggfunc=np.sum, margins=True, fill_value = 0)
df = (df.style.background_gradient(subset = 'large', cmap = sns.light_palette('red', as_cmap = True))
.background_gradient(subset = 'small', cmap = sns.light_palette('green', as_cmap = True)))
df
Таким образом, цель состоит в том, чтобы исключить последнюю строку из форматирования (столбец Все / Поля / Итого).