Python:基于MultiIndex的熊猫颜色数据框

问题描述 投票:0回答:1

考虑此MultiIndex数据框

i = pd.MultiIndex.from_tuples([(0, 0), (0, 1), (1, 0), (1, 1)], names=['level_0', 'level_1'])
df = pd.DataFrame(range(0, 4), index=i, columns=['foo'])

df

和此颜色字典

colors = {0: (0.6, 0.8, 0.8, 1), 1: (1, 0.9, 0.4, 1)}

其中元组的前三项是RGB值,第四项是透明度alpha。

如何根据level_0索引对df着色?

获得此结果将很高兴:

df_level_0

但是这里我将考虑美术:

df_art

在后一种样式中,较亮的单元将具有相同的RGB设置,但透明度为0.25。

python pandas dataframe colors multi-index
1个回答
0
投票

用途:

i = pd.MultiIndex.from_tuples([(0, 0), (0, 1), (1, 0), (1, 1)], names=['level_0', 'level_1'])
df = pd.DataFrame(range(0, 4), index=i, columns=['foo']) 
#print (df)

import matplotlib.colors as col
colors = {0: (0.6, 0.8, 0.8, 1), 1: (1, 0.9, 0.4, 1)}

c = {k:col.rgb2hex(v) for k, v in colors.items()}
idx = df.index.get_level_values(0)

css = [{'selector': f'.row{i}.level0','props': [('background-color', c[v])]}
                                                               for i,v in enumerate(idx)]
print (css)

html = df.style.set_table_styles(css).render()
© www.soinside.com 2019 - 2024. All rights reserved.