我有一个数据框:
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中的颜色?
致谢。
答案 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))