我想问一下是否可以在pandas中组合不同的样式格式。 例如,我想一次合并以下4种样式。
df.style.format({'vm_unity': '{:.2%}'}).bar(subset=['vm_unity'], align='mid', color=['#d65f5f', '#5fba7d'])
df.style.bar(subset=['vm_top'], align='mid', color=['#d65f5f', '#5fba7d'])
df.style.bar(subset=['vm_bot'], align='mid', color=['#d65f5f', '#5fba7d'])
df.style.bar(subset=['Sy'], align='mid', color=['#d65f5f', '#5fba7d'])
我目前的表现方式是将它们组合成一行,但我相信这不是最优雅的方式
df.style.format({'vm_unity': '{:.2%}'}).bar(subset=['vm_unity'], align='mid', color=['#d65f5f', '#5fba7d']).bar(subset=['vm_top'], align='mid', color=['#d65f5f', '#5fba7d']).bar(subset=['vm_bot'], align='mid', color=['#d65f5f', '#5fba7d']).bar(subset=['Sy'], align='mid', color=['#d65f5f', '#5fba7d'])
请您放弃一条线以获得更有效的方式吗?
提前谢谢!
答案 0 :(得分:2)
你可以使用python的原生linebreak \并在之后打破这一行。你的代码是:
df.style.format({'vm_unity': '{:.2%}'})\
.bar(subset=['vm_unity'], align='mid', color=['#d65f5f', '#5fba7d'])\
.bar(subset=['vm_top'], align='mid', color=['#d65f5f', '#5fba7d'])\
.bar(subset=['vm_bot'], align='mid', color=['#d65f5f', '#5fba7d'])\
.bar(subset=['Sy'], align='mid', color=['#d65f5f', '#5fba7d'])
答案 1 :(得分:1)
因此,有多种方法可以对Styler / pandas数据框使用/应用多种样式。对我来说,最简单,最直接的方法是导出样式,其工作方式如下
>>> value = 1
>>> value.to_bytes(8, 'big')
b'\x00\x00\x00\x00\x00\x00\x00\x01'
在您的情况下就是
myStyle = myStyler.export()
这将返回一个样式对象,您以后可以使用
应用style_1 = bar(subset=['vm_top'], align='mid', color=['#d65f5f', '#5fba7d']).export()
关于此功能的很酷的事情是,您可以通过传递样式列表来一次使用一种或几种不同的样式。因此,要回答您的问题,只需确保事先导出所有想要的样式,然后就可以一次应用所有样式。
通过使用from pandas.io.formats.style import Styler
Styler.use([style_1])
来实现,以防您只想应用两种替代样式。