我有一个数据帧:
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))