我已经搜索了论坛,但仍在为此苦苦挣扎。
假设我有一个以 html 颜色作为值的键字典,即:
colours = {'a': '#2DB2EC',
'b': '#A71AB7',
'c': '#EB4141',
'd': '#EB4141',
'e': '#36D22C',
'f': '#2C4ED2',
'g': '#137C15',
'h': '#F4EA06'}
我还有一个包含两列的数据框,其中一列 (col1) 对应于我的“颜色”字典中的键:
col1 col2
a 900
d 1000
h 800
z 750
m 100
l 50
我如何使用 Pandas style.applymap 根据第一列的字典值对第二列进行颜色编码(如果没有找到值,则将其留空/白色)?我一直在玩一些 lambda 函数,但我真的很难让任何东西工作。
抱歉,这是一个基本问题,并提前致谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
根据第一列的字典值对第二列进行颜色编码(如果没有找到值,则将其留空/白色)
您也可以尝试 series.map
,然后在完成后为 col1 分配空白颜色。
def col_fun(df_c):
df_c = df_c.copy()
df_c['col2'] = df_c['col1'].map(colours).fillna('').radd("background-color:")
df_c['col1'] = 'background-color:'
return df_c
df.style.apply(col_fun,axis=None)
#or if you have more cols: df.style.apply(col_fun,axis=None,subset=['col1','col2'])