データサイエンス100本ノックをColaboratoryでやりたい


データ分析の練習コンテンツ「データサイエンス100本ノック(構造化データ加工編)」がデータサイエンティスト協会から公開されました。
動かすにはDockerの操作が必要なので、手軽に始めて見たい方向けにColaboratoryで動かす方法を残しておきます。

1.データをダウンロードする

まずは適当なノートブックを作成してColaboratoryを開きましょう。
開いたら以下のコマンドを実行して、GoogleDrive上にデータをダウンロードします。

from google.colab import drive
drive.mount('/content/drive')

!git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.git 'drive/My Drive/100knocks-preprocess'

ドライブのマウントを初めて実行する方は、実行したセルの下に以下の表示が現れます。URLをクリックしてGoogleColaboratoryのDriveに対するアクセスを許可しましょう。

最後に「このコードをコピーし、アプリケーションに切り替えて貼り付けてください。」と表示されるので、コピーしたコードを上記の「Enter your authorization code:」欄に貼り付けて実行しましょう。
マイドライブに戻ると「100knocks-preprocess」というフォルダが確認できると思います。
うまくいったら、このnotebookはもう使いません。

2.マイドライブからJupyter Notebookを開く

notebookファイルは以下のディレクトリに格納されています。

preprocess_knock_Python.ipynb をGoogleColabratoryで開いてみましょう。

3.動かしてみる

最初のセルをそのまま実行するとエラーになるので、ライブラリのインポートだけを実行したら以下のコードでデータを読み込みましょう

def get_df(filename):
  path = 'drive/My Drive/100knocks-preprocess/docker/work/data'
  return pd.read_csv(os.path.join(path, filename))

df_customer = get_df('customer.csv')
df_category = get_df('category.csv')
df_geocode = get_df('geocode.csv')
df_product = get_df('product.csv')
df_receipt = get_df('receipt.csv')
df_store = get_df('store.csv')

ちなみに、以下のフォルダ配下にこのコンテンツの狙いなどを説明したpdfファイルがあるので、取り組む前に読んでみると良さそうですね。
100knocks-preprocess/docker/dock

これで準備は完了です
時間を空けて実行するとDriveとの接続が切れてしまう事があるかもしれません。(ないかも...)その場合は再度以下のコードを実行するか、サイドバーからドライブをマウントして改めてデータを読み込みましょう。

from google.colab import drive
drive.mount('/content/drive')

以上

この記事を書いておいてなんですが、Dockerでの環境構築もそんなに難しくないですし、できると役立つことも多いので、これを機会にチャレンジするのもいいと思います。Macでの構築方法はこちらの記事が良さそうです。環境が作れればSQLの練習もできますしね!