私は別の列の値に依存して表のセルを色付けしようとしています。条件を使用してパンダスタイリング
import pandas as pd
df = pd.DataFrame({'a':[1,2,3],'b':[1.5,3,6],'c':[2.2,2.9,3.5]})
df
a b c
0 1 1.5 2.2
1 2 3.0 2.9
2 3 6.0 3.5
たとえば、上記のdfでは、c> bの場合は、赤色に着色します。したがって、セルdf [0、b]は強調表示されますが、他のセルは表示されません。
私は複数の試みをしたが、一般的に、私が持っているもの以下
def highlight(val1,val2):
color = 'red' if val1 < val2 else 'black'
return 'color: %s' % color
df.style.apply(lambda x: highlight(x.data.b,x.data.c), axis = 1,subset=['b'])
TypeError: ('memoryview: invalid slice key', 'occurred at index 0')
私はdocumentationのいずれかの例を見ないように見えます。しています彼らは一般的に、列内の最大値または最小値、またはdf全体を強調表示するなど、単一の列に対して条件を使用しています。
多分私が望むものは現在できませんか?ドキュメントから:
ラベルベースのスライスは現在のところサポートされていますが、位置情報ではありません。
スタイル・ファンクションでサブセットまたは軸のキーワード引数を使用する場合は、 ファンクションをfunctools.partialにラップし、そのキーワードを部分的に にすることを検討してください。
ええと、なぜあなたが使用している 'x.data' ?それは 'memoryview'オブジェクトを返します... –