今年最後の記事はjupyter notebook上で動くGUIアプリケーションについて紹介します。

当該記事より内容を拝借しています。https://towardsdatascience.com/introducing-bamboolib-a-gui-for-pandas-4f6c091089e3

bamboolib

bamboolibはTobias Krabelという方が作成したpythonのライブラリです。jupyter上で手軽にデータの集計や加工を行うことができます。

ライセンス

この界隈のプロダクトでは珍しく基本有料です。但しFREEというトライアル版で利用できるバージョンがあるので今回はそれを利用します。有料版との違いはコードがシェアされること、binder上からの実行に限るなどです。(すなわち機密性を要する仕事で使用する場合などはNGということです)なお有料版でも月額3000円程度ですので、これを元にGUIアプリを作成し社内やクライアントに提供するという使い方もできそうです。

まずは簡単にチュートリアルを見てみましょう。

環境設定

jupyter環境

(FREEバージョンでは以下の作業がいらない?調査不足のため、一応私が行った操作通りに記載します)

まずコンソール上(macならばシェルで)から、

pip install bamboolib
jupyter nbextension enable --py qgrid --sys-prefix
jupyter nbextension enable --py widgetsnbextension --sys-prefix
jupyter nbextension install --py bamboolib --sys-prefix
jupyter nbextension enable --py bamboolib --sys-prefix
jupyter labextension install @jupyter-widgets/jupyterlab-manager@1.0 --no-build

上のコマンドの2つ目の@以下はご自身の環境のバージョンに合わせてください。但しバージョンが1.2.4とかの場合は1.0と先頭の数値で記載しないと上手く行かないようです。

続けて以下を実行します。

jupyter labextension install @8080labs/qgrid@1.1.1 --no-build
jupyter labextension install plotlywidget --no-build
jupyter labextension install jupyterlab-plotly --no-build
jupyter labextension install bamboolib --no-build

jupyter lab build --minimize=False

FREEで立ち上げ

環境設定終了後の状態で普通にjupyterを立ち上げ、bamboolibを利用しようとすると

上記のような画面となりactivationを要求されます。今回はFREEで行う手はずですので、一旦上記を閉じて別のやり方で立ち上げます。

1. GithubにRepositoryを作成する

以下のリンクを開いて

https://github.com/8080labs/bamboolib_binder_template/blob/master/create_your_own_binder.md#create-your-own-binder-notebook

青くハイライトされた[this link]をクリックし、リンク先からご自身のGihubアカウントでログインすると以下のような画面になります。

Repository nameに適当に[bamboolib_binder_template]などと入れて新たなRipositoryを作成します。

2.binderで立ち上げる

もう一度冒頭のurlに戻り4のリンク

[https://mybinder.org/]をクリックし、

の画面にとび、GitHub repository name or URL に先ほど作成したrepositoryのurlを入力し、launchをクリックします。

しばらくするとjupyter notebookが以下のように立ち上がります。

あとはいつものようにnewよりnotebookを新規作成します。

import bamboolib

hello world的なことをしてみます。data配下にデフォルトでtatanicのデータがあるのでそれを利用します。

import bamboolib as bam
import pandas as pd

#titanic
df = pd.read_csv('data/titanic.csv')

bam.show(df)


上記のイメージから色々なことがGUIでできそうということはわかると思います。次回以降もう少し詳細な使い方を研究し解説していきたいと思います。

来年もどうかよろしくお願いいたします。