『データサイエンス100本ノック』をやってみる①


データサイエンス初学者のための実践的な学習環境
「データサイエンス100本ノック(構造化データ加工編)」をGitHubに無料公開
https://digitalpr.jp/r/39499

こちらをやってみようと思います。
ちなみにRは全くわからないのでやらないと思います。

環境

・Windows10
・Docker for Desktop
・Git

環境構築

Docker起動

 wsl -e docker-desktop

Gitからクローン

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

Dockerをビルド

cd 100knocks-preprocess
docker-compose up -d --build

しばらく時間がかかります・・・
なんかいろいろ落としてるぽい・・・

環境構築の注意点

Docker Toolboxを使っている場合、アクセス先のURLが変わります。
http://192.168.99.100:8888
クライアントツールを使ってDBにアクセスする場合のホストも合わせて変わります。

100本ノック環境の確認

以下にアクセス
http://localhost:8888

こんな画面が開くはず

work/preprocess_knock_SQL.ipynbを開くと

こんな感じでSQLの問題があります。
Python、Rも同様でanserフォルダの中に答えもあるみたい。
DBはPostgre12です。

ザラっと見た感じそんな難しくはない感じですが、第3正規化しろとか言われるとだいさん・・・?って一瞬なってググりますねw

おまけ

この環境はJupyter Notebookっていうのを使ってるみたいですね。
なんかよく見るなって思ってたけどよく知らないので調べてみました。

Jupyter notebookはJupyterプロジェクトの一つでOSSのWebアプリケーションです。
Jupyterプロジェクトとは、複数の言語にまたがって対話的な処理実行を実現するためのサービスやOSSを開発するためのプロジェクトです。
そしてプログラムの実行結果などをまとめて管理することができます。

*.ipynbって拡張子のこの画面を作っているみたいで、中を開くと以下のようなjson形式のファイルでした。

Entity_Relationship.ipynb
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DB論理設計(ER図)\n",
    "- 一部、FKとなっているデータについて、マスターテーブルに存在しないデータを有することもあります\n",
    "- 例)非会員の顧客IDは顧客テーブルに含まれません\n",
    "- そのため、FKの情報は一般的なデータベースにおける外部参照制約を満たすものではありません\n",
    "- データを結合する際の参考情報として利用してください"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![ER図](data/100knocks_ER.png \"サンプル\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}

参考

今さら聞けない Jupyter notebook https://qiita.com/szk3/items/920fd3e905ed16469780