データ分析などをしていると、画像はダウンロードせずに特定の CDN (GCP なら GCS, AWS なら S3 など)で提供されている画像を参照して、 Jupyter Notebook 上で良い感じに表示させたいときがありませんか?
例えば、画像と説明文がペアになっているデータを画像自体はダウンロードせずに Jupyter 上で画像と説明文を DataFrame として表示させたいときが多々ある。
元の画像自体は CDN に格納されていて、画像をダウンロードする必要はなく参照するだけのときにはすごく便利。
毎度画像を CDN からダウンロードするのも無駄なので、画像を加工せずに Jupyter 上で表示するだけなら、この方法がベストですね。
url からとってきた画像を jupyter に表示する でも同じような課題に取り組んでいるが、今回紹介する方法なら余計なパッケージを入れずに最小構成で Jupyter 上で表示できるのが利点。
結果はこうなる
やっていることとしては、
- Pandas のDataFrame.to_html()関数で、DataFrame を HTML に変換
- 変換時に、
escape=False
にすることでエスケープせずに HTML を出力
formatters
では、特定のカラムに関数を適用して変換できる。この関数は文字列を返す関数でなくてはならない。
- 最後に出力された HTML を
IPython.display
のHTML
モジュールで HTML を Jupyter 上で表示
Appendix
Gist はこちら
Colab でも公開しておきます
Colab link
References