LoginSignup
2
1

More than 3 years have passed since last update.

GoogleColabでdisplayにより出力されるpandasのデータフレームのデフォルトスタイル(CSS)を変更

Last updated at Posted at 2020-08-12

概要

GoogleColab のなかで、IPython.display モジュールで経由で出力されるデータフレーム pandas.DataFrame のデフォルトの見た目(スタイル/CSS)を変更するための方法です。
2020-08-12_17h20_05.png

なお、GoogelChrome で動作確認をしています。

データフレームのスタイルを変更

GoogleColab. のコードセルで下記を実行すると、

import pandas as pd
df = pd.DataFrame([[1, 2, 3],[4, 5, 6],[7, 8, 9]],
                  columns=['Osaka','Tokyo','Aichi'])
display(df)

次のようにHTMLのテーブル要素を使って整形されたデータフレームが出力されます。
2020-08-12_17h49_15.png

このテーブルのスタイル(CSS)をカスタマイズしたい場合は、次のようなコードを挿入します。以降、IPython.display(...) 経由で出力されるデータフレーム(HTMLのテーブル要素)には、コード内で指定したCSSが適用されるようになります。

データフレームの出力に適用されるCSSを変更
import IPython

def set_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)

以降、データフレームは次のように出力されます(すべてのテーブル全体に罫線が入って、ヘッダのフォントとマウスオーバーのときの色が変わるようになりました)。
2020-08-12_17h50_00.png

条件付き書式

セル内の数値に応じて色を変えるといった条件付き書式を適用したい場合は DataFrame.style を使用するようです。

・・・と思ったら、Google Colab. 環境ではうまくいかないらしいです。残念。

参考資料

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1