下面是我正在使用的示例数据/脚本。我试图从这些数据创建两个不同的热图比例。
因此,ID 1行应该具有红色、绿色和黄色的热图颜色,ID 2和ID 3应该具有红色、绿色和黄色的热图反转颜色。
我认为问题来自于定义C1和C2。任何帮助都将不胜感激。
import pandas as pd
import numpy as np
index = ['ID1','ID2','ID3']
cols = ['A','B','C','D']
df=pd.DataFrame(abs(np.random.randn(3, 4)), index=index, columns=cols)
c1 = 'cmap:RdYlGn' # Heatmap for red green yellow color
c2 = 'cmap:RdYlGn_r' # reverse heatmap for red green yellow color
d = {'ID1':c1,'ID2':c2,'ID3':c2}
df.style.apply(lambda x: x.index.map(d))
#ID1 should get RdYlGn heatmap and #ID2 and ID3 should get RdYlGn_r heatmap.
1条答案
按热度按时间vktxenjb1#
以下是使用Pandas background_gradient和IndexSlice执行此操作的一种方法:
然后,在Jupyter笔记本计算单元中运行
styler
,得到: