我可以使用语法
突出显示一列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])
同样,我可以通过传递axis=1
来突出显示一行:
df.style.apply(lambda x: ['background: lightgreen' if x.name == 0 else '' for i in x],
axis=1)
然而,我无法弄清楚如何同时做两件事;问题是,当我使用applymap
时,我只获取值,而不是它们来自的系列的名称。
答案 0 :(得分:7)
做这样的事情怎么样?在构建样式列表时枚举列并检查索引:
df.style.apply(lambda x: ['background: lightblue' if x.name == 0 or i == 0 else ''
for i,_ in x.iteritems()])
或者如果你有颜色偏好:
df.style.apply(lambda x: [('background: lightblue' if x.name == 0
else ('background: lightgreen' if i == 0 else ''))
for i,_ in x.iteritems()])
答案 1 :(得分:1)
您还可以链接样式:
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])\
.apply(lambda x: ['background: lightgreen' if x.name == 0 else '' for i in x], axis=1)