Life is Like a Boat

忘備録や経済、投資、プログラミングに関するメモやtipsなど

JupyterのSQLマジックコマンド使ってみた

Jupyter NotebookからSQLのSELECT文を実行してPandasのDataframeを作りたい時、いままでだといちいちConnectionオブジェクトを作って、SELECT文を書いて..という風にやっていました。

今までのやり方

import psycopg2
# postgres config
connection_config = {
    'host': os.environ.get('DB_HOST'),
    'port': os.environ.get('DB_PORT'),
    'database': os.environ.get('DB_NAME'),
    'user': os.environ.get('DB_USER'),
    'password': os.environ.get('DB_PASSWORD'),
}
connection = psycopg2.connect(**connection_config)
nikkei_225_df = pd.read_sql(sql='SELECT code FROM market_static_data WHERE nk225 = TRUE;', con=connection, index_col='code' )

つい最近JupyterのSQLマジック関数の存在を知りまして、使ってみて便利だったので以下セットアップから実行までのメモです。

  1. 普通にPandas使っているなら、SQLマジック関数のipython-sqlをインストールします。 pip install ipython-sql

  2. 新規のセルに %load_ext sql これでマジック関数が使えるようになります。

  3. DBの接続先を設定します。

%sql prestgres://user@localhost:5432/market_data

準備はこれだけです。

試しに日経平均の採用銘柄を取得するSELECT文を書いてresult_setに代入してあげます。

%sql result_set << SELECT code, name FROM market_static_data WHERE nk225 = TRUE;

さらにresult_setをDataFrame化。

result_set.DataFrame()

f:id:nerimplo:20190624135051p:plain ちゃんとDataFrame化されてます!

SQLマジック関数を使うと、いちいちDataframeオブジェクトを作って中身を確認する手間が省けるのでサクッと実行してみたいという時に便利です。

PythonユーザのためのJupyter[実践]入門

PythonユーザのためのJupyter[実践]入門

東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶデ―タ分析~

東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶデ―タ分析~

  • 作者: 塚本邦尊,山田典一,大澤文孝,中山浩太郎,松尾豊[協力]
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2019/03/14
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る