Python 基于条件的熊猫造型

Python 基于条件的熊猫造型,python,pandas,Python,Pandas,我正在尝试根据条件为数据框的文本或单元格着色。这是我的密码。它的工作原理是: def Highlight_Majors(val): color = 'blue' if val == "Austria" else 'black' return 'color: %s' % color s = df.style.applymap(Highlight_Majors) s 字符串“Austria”现在在数据框中高亮显示。 如果我需要强调的国家不止一个,该怎么办 这不起作用: def

我正在尝试根据条件为数据框的文本或单元格着色。这是我的密码。它的工作原理是:

def Highlight_Majors(val):

    color = 'blue' if val == "Austria" else 'black'
    return 'color: %s' % color

s = df.style.applymap(Highlight_Majors)
s
字符串“Austria”现在在数据框中高亮显示。 如果我需要强调的国家不止一个,该怎么办

这不起作用:

def Highlight_Majors(val):

    color = 'blue' if val == "Austria"|"Belgium" else 'black'
    return 'color: %s' % color
正确的方法是什么?

这个怎么样

color = 'blue' if any([val==i for i in ["Austria", "Belgium"]]) else 'black'

将中的
运算符与集合成员资格测试一起使用:

def Highlight_Majors(val):
    return 'color: %s' % ('blue' if val in {"Austria", "Belgium"} else 'black')

@prashanthmanohar不要用这个。真的很慢。我给了它一个-1,因为这是一个糟糕的测试方法。详情请参见我的答案。@coldspeed我认为downvote的意思是“答案没有用”,但在这种情况下,这种方法可能只是实现相同结果的另一种方法。无论如何谢谢你!