RDBのテーブルを検索してpandasのdataframeを作成する
pandasにはRDBに対してsqlクエリーを実行するメソッドが用意されている。これを使ってストアドプロシージャを実行し、その実行結果からpandasのdataframeを作成。pandasを使ったデータ集計やらその後のmatplotlibを使ったグラフ描画などに展開することが可能。
make_pandas_df.py
import sqlalchemy
import pandas as pd
q = 1
ym = 201604
CONNECT_INFO = 'mssql+pyodbc://hogehoge'
engine = sqlalchemy.create_engine(CONNECT_INFO, encoding='utf-8')
#データフレーム作成
query = 'EXEC dbo.sp_rtrv4pandas @q = {0},@ym = {1}'.format(qq,ym)
df = pd.read_sql_query(query, engine,index_col =['prd'])
print(df)
1.上記における接続DBはSQLServerを想定。SQLServerの場合、ストアドの実行はEXEC文で行う
2.pandasのread_sql_queryメソッドでSQLを実行する
3.ストアドプロシージャの引数は、上記のようにpythonの変数埋め込み記述(format)で指定
4.ストアドプロシージャの結果はdfにセット、これがpandasのdataframeオブジェクトとなる