自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

【Pandas】read_sql で生のSQL(SELECT文)を実行、DBから直接DataFrameを作る

thumbnail

分析するデータは常にCSVにあるわけではない。DBから取り出す必要もある。

そこで、Pandasからread_sql メソッドを使ってDBから直接DataFrameを作る。

pandasで.read_sql() を使うサンプルコード

pip install pandas 
pip install sqlalchemy
Copy

事前にpandas とsqlalchemy をインストールしておく。

import pandas as pd
from sqlalchemy import create_engine

# 例: PostgreSQL に接続する場合(DB種類・ホスト・ポート・ユーザー・パスワードを変更)
engine = create_engine('postgresql://username:password@localhost:5432/mydb')

# 生のSQL文(文字列)
sql = """
SELECT
  species,
  AVG(petal_length) as avg_petal_length
FROM iris
GROUP BY species
"""

# pandasでSQL実行 → 結果がDataFrameになる
df = pd.read_sql(sql, con=engine)

print(df)
Copy

OracleDBに対してPandasでデータを読み込みするには?

pip install pandas 
pip install sqlalchemy
pip install cx_Oracle
Copy

必要に応じて、Oracle InstantClient が必要になるため、別途下記からインストールしておく。

https://www.oracle.com/database/technologies/instant-client.html

import pandas as pd
from sqlalchemy import create_engine

# Oracle接続 (例: ユーザーscott、パスワードtiger、ホストlocalhost、ポート1521、サービス名orcl)
engine = create_engine('oracle+cx_oracle://scott:tiger@localhost:1521/?service_name=orcl')

df = pd.read_sql("SELECT * FROM iris", con=engine)
print(df)
Copy
スポンサーリンク