有没有一种方法可以根据多列上的条件来格式化数据帧中的单元格?

时间:2020-03-23 17:16:01

标签: python html pandas

我有一个带有几列的数据框(一个布尔值和一个数字)。我想使用熊猫样式设置条件格式,因为我将基于以下条件在电子邮件中以html格式输出数据框:1.布尔列= Y和2.数字列> 0。

例如,

col1 col2
 Y    15
 N    0
 Y    0
 N    40
 Y    20

在上面的示例中,我要突出显示第一行和最后一行,因为它们符合这些条件。

2 个答案:

答案 0 :(得分:0)

是的,有办法。使用lambda表达式应用条件,并使用dropna()函数来区分None / NaN值:

df["col2"] = df["col2"].apply(lambda x:x if x > 0 else None)
df["col1"] = df["col1"].apply(lambda x:x if x == 'Y' else None)
df.dropna()

答案 1 :(得分:0)

我使用了以下方法,并且有效:

def highlight_color(s): 如果s.Col2> 0且s.Col1 ==“ N”: 返回['background-color:red'] * 7 其他: 返回['background-color:white'] * 7

df.style.apply(highlight_color,axis = 1).render()