概要
GoogleColab のなかで、IPython.display モジュールで経由で出力されるデータフレーム pandas.DataFrameのデフォルトの見た目(スタイル/CSS)を変更するための方法です。
なお、GoogelChrome で動作確認をしています。
データフレームのスタイルを変更
GoogleColab. のコードセルで下記を実行すると、
importpandasaspddf=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['Osaka','Tokyo','Aichi'])display(df)次のようにHTMLのテーブル要素を使って整形されたデータフレームが出力されます。
このテーブルのスタイル(CSS)をカスタマイズしたい場合は、次のようなコードを挿入します。以降、IPython.display(...)経由で出力されるデータフレーム(HTMLのテーブル要素)には、コード内で指定したCSSが適用されるようになります。
データフレームの出力に適用されるCSSを変更
importIPythondefset_css_in_cell_output():display(IPython.display.HTML('''<style>
table.dataframe td, table.dataframe th{
border:1px solid #dadada;
}
table.dataframe th{
font-family: 'Roboto','Noto',sans-serif;
background: #eeeeee;
font-weight: bold;
}
table.dataframe td{
background: #ffffff;
}
table.dataframe tbody tr:hover th{
color: #ffffff;
background-color:#4169e1;
}
table.dataframe tr:hover td{
background-color: #d7eeff;
}
</style>'''))get_ipython().events.register('pre_run_cell',set_css_in_cell_output)以降、データフレームは次のように出力されます(すべてのテーブル全体に罫線が入って、ヘッダのフォントとマウスオーバーのときの色が変わるようになりました)。
条件付き書式
セル内の数値に応じて色を変えるといった条件付き書式を適用したい場合は DataFrame.styleを使用するようです。
- User Guide :: Styling @ pandas.pydata.org
参考資料
- How to import CSS file into Google Colab notebook (Python3) @ stackoverflow