2017-08-26 8 views
1

私は、条件に基づいてデータフレームのテキストまたはセルを色付けしようとしています。これは私のコードです。それは動作します:文字列「オーストリア」が今データフレームで強調表示されます条件に基づいてパンダをスタイリングする

def Highlight_Majors(val): 

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

s = df.style.applymap(Highlight_Majors) 
s 

。 複数の国を強調表示する必要がある場合はどうすればよいですか?

これは動作しません:

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

関連する問題