・お題:PandasのDataFrameの特定の列やセルに色を付けて、表を見やすくしたい。
・公式サイトを参考にした。正しいことは公式サイトを参照していただきたい。
・とりあえず、データセットを作成する。
import pandas as pd
import numpy as np
df=pd.DataFrame({"No":[1,2,3],
"Code":["A","B","C"],
"Score":[1.23,np.nan,3.45]})
・何もしなければ、dfは以下のようになる。
・例えば、Codeの列を黄色くしてみる。
df.style.set_properties(**{"background-color":"yellow"},subset=["Code"])
#**がなんのためについているのか分からない。辞書に**を付けるとアンパックされるイメージがあるが。。
・背景色以外のプロパティを与えてやれば、もっといろいろ変更できる。例えば、フォント、文字の色、文字の大きさも変えてみる。
df.style.set_properties(**{"background-color":"yellow",
"font-family":"Times New Roman",
"color": "red",
"font-size":"2em"},
subset=["Code"])
・条件にあてはまるセルの色だけ変えることもできる。例えば、nanのセルを赤くしてみる。
df.style.highlight_null("red")
・関数で条件設定し、Noの列のうち、2未満のセルを水色にしてみる。
df.style.applymap( lambda x : "background-color : lightblue" if x < 2 else "", subset = ["No"])
・特定の列の最大値のセルを赤色にしてみる。
df.style.highlight_max( color = "red", axis = 0, subset = ["Score"] )
・ヒートマップっぽく、背景色を数値の大小で塗ってみる。
df.style.background_gradient( cmap = "bwr" )
・文字の方を数値の大小で塗ってみる。
df.style.text_gradient( cmap = "bwr" )
おわり。