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

时间:2020-05-15 09:33:23

标签: html css python-3.x pandas

我有一个数据框:

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,y为2。

我试图用颜色构造一个数据框:

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中的颜色?

致谢。

1 个答案:

答案 0 :(得分:1)

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

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