添加背景渐变的 pandas 样式选项 非常适合快速检查我的输出表。但是,它是按行或按列应用的。是否可以一次将其应用于整个数据框?
编辑:一个最小的工作示例:
df = pd.DataFrame([[3,2,10,4],[20,1,3,2],[5,4,6,1]])
df.style.background_gradient()
原文由 Peter9192 发布,翻译遵循 CC BY-SA 4.0 许可协议
添加背景渐变的 pandas 样式选项 非常适合快速检查我的输出表。但是,它是按行或按列应用的。是否可以一次将其应用于整个数据框?
编辑:一个最小的工作示例:
df = pd.DataFrame([[3,2,10,4],[20,1,3,2],[5,4,6,1]])
df.style.background_gradient()
原文由 Peter9192 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 axis=None
摆脱调用中的最小和最大计算:
def background_gradient(s, m=None, M=None, cmap='PuBu', low=0, high=0):
print(s.shape)
if m is None:
m = s.min().min()
if M is None:
M = s.max().max()
rng = M - m
norm = colors.Normalize(m - (rng * low),
M + (rng * high))
normed = s.apply(norm)
cm = plt.cm.get_cmap(cmap)
c = normed.applymap(lambda x: colors.rgb2hex(cm(x)))
ret = c.applymap(lambda x: 'background-color: %s' % x)
return ret
df.style.apply(background_gradient, axis=None)
编辑:您可能需要使用 normed = s.apply(lambda x: norm(x.values))
才能在 matplotlib 2.2 上工作
原文由 Andreas Mueller 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答975 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
目前,您不能像 Nickil Maveli 指出的那样同时为行/列设置
background_gradient
。诀窍是自定义 pandas 函数 background_gradient :