macOS Tahoeでデータサイエンス100本ノック

はじめに_

「データサイエンティスト協会スキル定義委員」の「データサイエンス100本ノック(構造化データ加工編)」の実行環境を構築する。

前提_

macOS BigSurにhomebrewがインストール済みとする。

Dockerのインストール_

Homebrewを使ってインストールする。

% brew install --cask docker

Docker Desktopを起動する。起動時にいろいろと許可が求められるが都度都度対応する。

% open /Applications/Docker.app

Docker Desktop起動時のチュートリアルはやってもやらなくてもよい(使ったことがない人はやってみる)。コマンドにdockerがあるのを確認する。

% which docker
/usr/local/bin/docker

% % docker --version
Docker version 29.7.2, build a7dcaa6

データサイエンス100本ノック(構造化データ加工編)の実行環境設定_

ターミナル上で以下のように作業を進める。まず、作業ディレクトリを作成する。

% mkdir -p ~/Sandbox/DS100Knocks
% cd ~/Sandbox/DS100Knocks

データサイエンス100本ノック(構造化データ加工編)のリポジトリを取得する。

% git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.git

% cd 100knocks-preprocess

% docker compose up -d --build --wait
[+] Building 308.6s (21/21) FINISHED                                            
 => [internal] load local bake definitions                                 0.0s
 => => reading from stdin 1.09kB                                           0.0s

〜中略〜

 => [notebook] resolving provenance for metadata file                      0.0s
[+] up 5/5
 ✔ Image dss-postgres                   Built                             308.7s
 ✔ Image dss-notebook                   Built                             308.7s
 ✔ Network 100knocks-preprocess_default Created                             0.0s
 ✔ Container dss-postgres               Healthy                             6.6s
 ✔ Container dss-notebook               Healthy    

これでDockerに実行環境が準備される。Webブラウザ(Safariなど)で以下のURLにアクセスする。 http://localhost:8888

データサイエンス100本ノック(構造化データ加工編)の実行方法_

Docker Desktopにて100knocks-preprocessが動いていることを確認する。以下のように表示されていれば動いている。

Webブラウザ(Safariなど)で以下のURLにアクセスする。

すると以下のようなWebサイトが表示される。

下図赤枠のworkをクリックする。すると preprocess_knock_XXX.ipynbというファイルがある。これが100本ノック本体となる。ここではSQL版を開いている。

コマンドの実行は、まず、セルをアクティブ(カーソルで選択)する。

セルをアクティブにした状態で、左上にあるメニューのRun→Run Selected Cellを選ぶ。そうすると、コマンドが実行される。以下の例は初期設定の実行。

各問題への解答はCellへ入力し、Runで実行するという流れになる。模範回答はanswerディレクトリの下にある。以下の例はSQLのノック1本目を回答し、実行した例。

戻る_