【AtomとDockerの連携】Atom上でGitHub「 データサイエンス100本ノック(構造化データ加工編)」を学習する方法。Hydrogenの設定について

Atom上でDocker上のJupyte LabやPostgreSQLなどを動かす方法

過日、一般社団法人データサイエンティスト協会がGithub上に「データサイエンス100本ノック(構造化データ加工編)」というものを公開しました。これは、Python、R、SQLの初心者に対するそれらの学習教材として誰もが無料で利用できるものとなっています。

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

これのPython用の100本ノックを最近少しずつ進めています。そろそろ半分ぐらいに到達しそうです。私にはなかなか高度でハードな内容です。

こんな感じでブラウザ上でJupyter Lab(自分のPCに作った仮想環境上のもの)にアクセスして、問題を1問ずつ解いていきます。ちゃんと模範解答もあります。

データサイエンス100本ノック(構造化データ加工編)



ですが、やはり私自身使い慣れたテキストエディタAtom上で、この100本ノックをやりたいと思い、ちょっといじってみたらそれがすぐにできたので、備忘録として、また同じような人の参考になればと書いておきます。

目次

(1) 実現したいこと

(2) 私の環境と対象ユーザー

(3)AtomのHydrogenの設定方法




(1) 実現したいこと

テキストエディタAtomとDockerの連携



この画像のように、Docker上の「データサイエンス100本ノック(構造化データ加工編)」データとAtomとを連携させることができるようになります。

Docker上に作られたデータベースともきちんと連携がとれており、画像→側できちんとコードの実行結果が表示されています。

(2) 私の環境と対象ユーザー

まず私の環境は以下の通りです。

・Windows10
・AnacondaでPython環境を作成
・Atom(2020/06/29時点で最新版)
・Python実行パッケージのHydrogen(2020/06/29時点で最新)
・「データサイエンス100本ノック(構造化データ加工編)」については環境を構築済み

今回の記事の対象ユーザーは、

・すでにAtomをつかっている
・Python実行パッケージとしてHydrogenをすでに利用できている
・すでに「データサイエンス100本ノック(構造化データ加工編)」の環境構築を終えて、実際に使っている

という方が対象となります。

(3)AtomのHydrogenの設定方法

さて、ではどうやってDocker上の「データサイエンス100本ノック(構造化データ加工編)」のJupyter Labを使わずに、Atomで学習できるようになるかというと、Hydrogenの設定をちょびっといじるだけです。ポイントは、リモートカーネルの設定を追加することだけです。

まずはHydrogenの設定ページへ移動しましょう。

テキストエディタAtomとDockerの連携



Atomのメニューバーの「File」から、「Settings」へ。

テキストエディタAtomとDockerの連携



次に、インストールされているパッケージ群からHydrogenを選択し、その「Setting」(設定)ボタンをクリック。

テキストエディタAtomとDockerの連携



そして設定項目の「Kernel Gateways」というところに、

[{"name" : "Remote notebook" , "options":{"baseUrl" : "http://192.168.99.100:8888"} }]


と入力してください。↑のものをコピペしてもらえればOKです。http:~のURLですが、これは「データサイエンス100本ノック(構造化データ加工編)」で用意されている環境構築ガイドで指定されているJupyter Labのアドレスそのままです。

ブラウザ上では「http://192.168.99.100:8888/lab?」というように、「lab?」という文字列が表示されますが、この部分を入れると私の場合はエラーがでました。

“name”の部分はRemote notebookという情報を設定しましたが、別にどんな名前でもいいと思います。ただ日本語でも良いのかは不安なので、いちおう英数字だけにしておきましょう。たとえば、Jupyter Labとか。

次に、このアドレス上にあるJupyter Labへ、Hydrogenからアクセスします。

テキストエディタAtomとDockerの連携



Atomのメニューバー(ツールバー?)の「Packages」→「Hydrogen」→「Connect to Remote Kernel」をクリック。

テキストエディタAtomとDockerの連携



そうすると、「Remote notebook」という項目が登場しますので、クリック。これは上述の「[{“name” : “Remote notebook” , “options”:{“baseUrl” : “http://192.168.99.100:8888”} }]」で設定した、「”name”」の部分の情報です。

テキストエディタAtomとDockerの連携



次に[new session]という項目とともに、その下にDocker上のJupyter Labのパスが登場しますので、それをクリックしましょう。

これで、Docker上のJupyter LabとAtomのHydrogenが連携し、Jupyter Labの機能・サービスをAtomが使えるようになりました。

実際にAtomで「データサイエンス100本ノック(構造化データ加工編)」のためのPythonコードを書くときは、Docker上のデータベースPostgreSQLや、Python用各種ライブラリ(モジュール)などを利用できるようにするため、「はじめに」という項目で書かれている、

        %load_ext sql
        import os
        import pandas as pd
        import numpy as np
        from datetime import datetime, date

   (略)


        df_store = pd.read_sql(sql='select * from store', con=conn)
        df_geocode = pd.read_sql(sql='select * from geocode', con=conn)



という部分をAtomへコピペして実行してから、問題演習のコードを書いていきましょう。まぁそれはJupyter Lab上でも同じですが。

テキストエディタAtomとDockerの連携



特に問題がなければ、↑画像のようにデーターベースをPythonで操作した結果がJupyter Lab上でのそれと同じように表示されます。

稼げる実力を身につける、就職や転職で勝つために

Tech Academy

厚切りジェイソンのCMでおなじみのプログラミングスクール。自宅でオンライン受講OK。現役のプロが一人一人に専属メンターになってくれ、質問すればすぐに回答。転職保証あり

Udemy

世界最大級のオンライン学習動画サービス。AI・データサイエンスなど最先端のプログラミング講座からビジネススキル講座まで10万以上の講座から選び放題。講師に掲示板から直接に質問もできる。