Life is Like a Boat

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

いい加減に覚えたい、よく使うPandas APIレファンレンス2

Pandas側からDBとのやり取りはよくするのに、いつも書き方を忘れてしまうのでメモ代わりに残してみました。

流れ

  1. 環境変数を読み込む

  2. クエリを作ってデータフレーム化する

です。

インストール

まずモジュールのインストールから

pip install -U python-dotenv

.envの作成

次に環境変数を集めた.envを作つくり、Notebookと同じディレクトリにおきます。

.envファイル

HOST= host
PORT= port_number
DATABASE= db_name
USER= user_name
PASSWORD= your_password

ノートブック上で読み込む

ノートブック上では

%load_ext dotenv をして、.envのパスを指定して読み込ませます。 2行だけで済むので楽チンです。

Notebook

%load_ext dotenv
%dotenv .env

import psycopg2

# postgres config
connection_config = {
    'host': os.environ.get("HOST"),
    'port': os.environ.get("PORT"),
    'database': os.environ.get("DATABASE"),
    'user': os.environ.get("USER"),
    'password': os.environ.get("PASSWORD")
}
connection = psycopg2.connect(**connection_config)  


df = pd.read_sql(sql='SELECT col1, col2 FROM data_table',
                    con=connection, index_col='col1')
col1 col2
0 東京 3
1 神奈川 4
2 千葉 3

まとめ

私は1プロジェクト1ノートブック派なので、環境変数をまとめたファイルを複数作っておいて、 $HOME/env_files/ のような場所に集めて集中管理した方がいいかもしれません。 Notebookをgithubにpushする時、.gitignoreに毎回書くのは面倒ですし。