今回は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文と、データベース接続オブジェクトを引数に指定する。