2017-08-26 109 views
1

我試圖根據條件爲數據框的文本或單元格着色。這是我的代碼。它的工作原理:基於條件設計熊貓

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 

什麼是做正確的方式?

回答

1

使用in運營商,一組成員資格測試:

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

這個怎麼樣?

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

謝謝!我不知道誰給了-1。它適用於我 –

+1

@prashanthmanohar _不要使用這個。這真的很慢。我給它一個-1,因爲這是一種不好的測試方式。詳情請參閱我的回答。 –

+0

@coldspeed我認爲downvote的意思是'答案沒有用',但在這種情況下,這種方法可能只是實現相同結果的另一種方式。不管怎麼說,還是要謝謝你! – Prem