Databricksでbamboolibを使ってみる

今週は結構立て込んでいたので記事投稿のペースが落ちてました。すみません。

https://qiita.com/taka_yayoi/items/7fb6fb9c45f4ea26a7cf

先日投稿した[bamboolib](https://bamboolib.8080labs.com/)の記事のウォークスルーをします。bamboolibを使うことで、ノーコードでデータフレームに対してさまざまな処理を行うことができます。また、その結果はPythonコードとして保存されるので、処理ロジックを転用することができます。

準備で必要なのはDatabricksランタイム11.0以降が稼働しているクラスターだけです。そのクラスターにノートブックを[アタッチ](https://qiita.com/taka_yayoi/items/c306161906d6d34e8bd5#%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%AB%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%82%92%E3%82%A2%E3%82%BF%E3%83%83%E3%83%81%E3%81%99%E3%82%8B)します。

![Screen Shot 2022-07-15 at 20.47.37.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/0652dfb8-b965-25fa-a5fd-ff7e3eca4e62.jpeg)

# ライブラリのインストール

bamboolibのインストールが必要です。[クラスターライブラリ](https://qiita.com/taka_yayoi/items/9407356caadea3dfb47c)としてもインストールできますが、今日はクイックに[ノートブックスコープライブラリ](https://qiita.com/taka_yayoi/items/d3a46efdc1ad01a581d0)としてインストールします。

```
%pip install bamboolib
```

ライブラリをインストール後に以下を実行します。

```py:Python
import bamboolib as bam
bam
```

bamboolibのウィジェットが表示されます。
![Screen Shot 2022-07-15 at 20.51.39.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/add32572-9595-4a85-3228-e72b379bb53b.jpeg)

# ダミーデータを用いたデータの操作

ここでは、最初からbamboolibが提供しているダミーデータを使用します。

1. **Load dummy data**をクリックします。
1. **Sales dataset**を選択します。
 ![Screen Shot 2022-07-15 at 20.54.52.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/063deb58-d260-8fd9-4e5a-113ae3f4d0c4.jpeg)
1. **Execute**をクリックします。
![Screen Shot 2022-07-15 at 20.56.21.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/022e2d54-aa10-d824-20e3-e05d5ec54191.jpeg)
1. データフレームとウィジェットが表示されます。
![Screen Shot 2022-07-15 at 20.58.18.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/70f8c1d3-27ed-dec5-4a55-f0ea1f302f5f.jpeg)
1. フィルタリングを行なってみます。**Search actions**のボックスにフォーカスします。`Filter rows`を選択します。
![Screen Shot 2022-07-15 at 21.01.08.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/8bada620-2ad6-273a-b5fc-6d742114cbe2.jpeg)
1. 画面右で**Select rows**を選択します。
![Screen Shot 2022-07-15 at 21.01.50.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/109b1a88-b66b-7034-4d63-eab739fe1935.jpeg)
1. **where**のセクションで、**has value(s)** のまま**Choose value(s)** のボックスにフォーカスします。
1. `Asia`を選択します。他の地域でも構いません。
![Screen Shot 2022-07-15 at 21.04.15.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/567bfcd2-0983-15b7-4c60-ff6c7ce66223.jpeg)
1. **Execute**をクリックすることで、選択した処理が実行されます。この場合、**region**が`Asia`であるものに行がフィルタリングされます。
![Screen Shot 2022-07-15 at 21.05.58.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d7637dea-834d-78ed-679f-df6dbd58f5b6.jpeg)

同様にソートやグルーピングなどアクションを選択することで、データフレームを簡単に操作することができます。

# Pythonコードの活用

ここまでGUI(ウィジェット)でデータを操作してきましたが、仮にこのデータ操作(変換)のロジックをプログラムに組み込みたいと考えたとします。そういった場合でもbamboolibは役立ちます。ここまでGUIで操作してきた内容をbamboolibは全て記録しており、それを再現するためのPythonコードを自動で生成してくれます。

ウィジェットの下部に操作を再現するためのPythonコードが常に表示されるので、変換ロジックが確定したら**Copy code**をクリックするとPythonコードをクリップボードにコピーすることができます。あとで別のプログラムに変換ロジックを組み込むことができます。
![Screen Shot 2022-07-15 at 21.09.30.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/f24f1a4b-892f-abbd-ba7f-2c1a55516977.jpeg)

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)