Python 熊猫,通过另一个数据帧为数据帧单元格设置背景颜色



我有一个数据帧:

df = pd.DataFrame({'grp':['A', 'A', 'B', 'B', 'B'], 'pos' : [1, 1, 1, 1, 2]})
>>> df
grp  pos
0   A    1
1   A    1
2   B    1
3   B    1
4   B    2

我想为每列中的相同值设置背景颜色。 例如,在 grp 列中,前两个值 AA 的背景色应为 1,BBB 背景色应为 2。在 pos 列中,1111 应具有颜色 x,2 颜色 y。

我尝试用颜色构造一个数据帧:

df_colors = pd.DataFrame({'grp':['#1d77ab', '#1d77ab', '#1a7899', '#1a7899', '#1a7899'], 'pos' : ['#1d77ab', '#1d77ab', '#1d77ab', '#1d77ab', '#167a7e']})
>>> df_colors
grp      pos
0  #1d77ab  #1d77ab
1  #1d77ab  #1d77ab
2  #1a7899  #1d77ab
3  #1a7899  #1d77ab
4  #1a7899  #167a7e

如果我在数据框中有颜色,如何在数据帧df_colors中使用颜色将样式应用于数据帧 df?

问候。

Styler.apply与 addbackground-color一起使用,只需要两个DataFrame的相同索引和列名:

(df.style.apply(lambda x: 'background-color: ' + df_colors, axis=None)
.to_excel('styled.xlsx', engine='openpyxl', index=False))

最新更新