過日、一般社団法人データサイエンティスト協会がGithub上に「データサイエンス100本ノック(構造化データ加工編)」というものを公開しました。これは、Python、R、SQLの初心者に対するそれらの学習教材として誰もが無料で利用できるものとなっています。
参考:データサイエンス初学者のための実践的な学習環境 「データサイエンス100本ノック(構造化データ加工編)」をGitHubに無料公開
これのPython用の100本ノックを最近少しずつ進めています。そろそろ半分ぐらいに到達しそうです。私にはなかなか高度でハードな内容です。
こんな感じでブラウザ上でJupyter Lab(自分のPCに作った仮想環境上のもの)にアクセスして、問題を1問ずつ解いていきます。ちゃんと模範解答もあります。

ですが、やはり私自身使い慣れたテキストエディタAtom上で、この100本ノックをやりたいと思い、ちょっといじってみたらそれがすぐにできたので、備忘録として、また同じような人の参考になればと書いておきます。
目次
(1) 実現したいこと
(2) 私の環境と対象ユーザー
(3)AtomのHydrogenの設定方法
(1) 実現したいこと

この画像のように、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のメニューバーの「File」から、「Settings」へ。

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

そして設定項目の「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のメニューバー(ツールバー?)の「Packages」→「Hydrogen」→「Connect to Remote Kernel」をクリック。

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

次に[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上でも同じですが。

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