今回はJupyterNotebookを使って、pandasでPostgreSQLのデータベースに接続する方法を紹介する。

psycopg2ライブラリのインストール

まず事前準備として、PostgreSQLの接続に必要なライブラリ「psycopg2」をインストールする必要がある。

今回はAnacondaでインストールしたJupyterNotebookを使って進めていくが、デフォルトのAnaconda環境には「psycopg2」がインストールされていないので、Anaconda NavigatorのEnvironmentsからインストールする。

Environmentsのインストール方法については、以下の記事で詳しく紹介している。
※以下の記事では「OpenCV」をインストールしている。

connect関数でデータベースに接続する

PostgreSQLデータベースに接続する場合は、まずライブラリをインポートし、connect関数を使って接続していく。

import pandas as pd
import psycopg2

db_host = "hostname"
db_port = "5432"
db_dbname = "dbname"
db_user = "dbuser"
db_password = "dbpassword"

conn = psycopg2.connect(host=db_host, port=db_port, dbname=db_dbname, user=db_user, password=db_password)

conn.get_backend_pid()
# 79832

get_backend_pid関数を実行し、値が返れば接続は成功だ。

SELECT文で取得した結果をデータフレームに変換する

pandasでのデータベースの使い方として、良く使われるのがSELECT文の実行結果をpandasデータフレームとして扱う方法だ。

sql = "SELECT * FROM tbl_uriage;"
uriage = pd.read_sql(sql, conn)

データフレームとして扱う場合は、上記のようにread_sql関数にSQL文と、データベース接続オブジェクトを引数に指定する。