我有以下熊猫dp
Player Team EPA
0 L.Jackson BAL 0.33
1 P.Mahomes KC 0.25
2 D.Brees NO 0.24
3 M.Stafford DET 0.21
4 D.Prescott DAL 0.19
5 R.Tannehill TEN 0.18
我想通过应用以下字典值来使用颜色设置样式,其中的键与Team
字段匹配。我还要使Player
字段的相应值具有相同的颜色。
COLORS = {'BAL':'#241773','DAL':'#B0B7BC','DET':'#046EB4',
'KC':'#CA2430','NO':'#A08A58','TEN':'#4095D1'}
我尝试查看this question,但以下代码没有成功
def highlight_cols(s, coldict):
if qbs.Team in COLORS.keys():
return ['background-color: {}'.format(COLORS[qbs.Team])] * len(s)
return [''] * len(s)
qbs.style.apply(highlight_cols, coldict=COLORS)
我一直在阅读DataFrame.style
documentation,并试图找出一种方法,可以为字典中对应于十六进制代码的每个Team
上色。在文档笔记本的单元格5和6中,它显示了如何编写函数并使用df.style.applymap()
来应用函数,但是我不确定如何实现此特定函数。我尝试使用.loc
无济于事。任何帮助表示赞赏。谢谢!
答案 0 :(得分:1)
不确定是否只希望将EPA列着色,是否要整行从最后一行删除subset
参数。
def highlight_cols(s, coldict):
return ['background-color: {}'.format(COLORS[v]) if v else '' for v in qbs.Team.isin(COLORS.keys())*qbs.Team.values]
qbs.style.apply(highlight_cols, coldict=COLORS, subset='EPA')