我可以使用语法突出显示一列
import pandas as pd
df = pd.DataFrame([[1,0],[0,1]])
df.style.apply(lambda x: ['background: lightblue' if x.name == 0 else '' for i in x])
Run Code Online (Sandbox Code Playgroud)
同样,我可以通过传递突出显示一行axis=1:
df.style.apply(lambda x: ['background: lightgreen' if x.name == 0 else '' for i in x],
axis=1)
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何同时做两件事; 问题是,当我使用时applymap,我只获取值,而不是它们来自的系列的名称.
做这样的事情怎么样?在构建样式列表时枚举列并检查索引:
df.style.apply(lambda x: ['background: lightblue' if x.name == 0 or i == 0 else ''
for i,_ in x.iteritems()])
Run Code Online (Sandbox Code Playgroud)
或者,如果您有颜色偏好:
df.style.apply(lambda x: [('background: lightblue' if x.name == 0
else ('background: lightgreen' if i == 0 else ''))
for i,_ in x.iteritems()])
Run Code Online (Sandbox Code Playgroud)