「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SQLクエリを使用してPandas read_sqlにパラメーターを渡す方法は?

SQLクエリを使用してPandas read_sqlにパラメーターを渡す方法は?

2025-03-04に投稿されました
ブラウズ:150

How to Pass Parameters to pandas read_sql with SQL Queries?

pandas read_sql をパラメーター化されたsqlクエリ

pandas.read_sql 関数は、データベースからデータを取得するための強力なツールです。 SQLalchemyエンジンを使用する場合、SQLクエリにパラメーターを効果的に渡すことが重要です。 このガイドは、2つの一般的なアプローチを示しています。位置と指名されたパラメーターです。

方法1:位置パラメーター

この方法は、リストまたはタプルを使用して、SQLクエリにパラメーターを提供します。 SQLステートメントのプレースホルダー(%s )は、パラメーターリストの要素に順番に置き換えられます。

例:

import pandas as pd
from datetime import datetime

# ... (database connection setup using SQLAlchemy) ...

query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
         'WHERE "Timestamp" BETWEEN %s AND %s')
params = [datetime(2014, 6, 24, 16, 0), datetime(2014, 6, 24, 17, 0)]

df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])

方法2:名前付きパラメーター

名前のパラメーターは、より良い読みやすさと保守性を提供します。 ただし、サポートされている構文はデータベースドライバーによって異なります。 sqlalchemyおよびpsycopg2では、%(name)s syntaxが必要です。

が必要です。

例:

import pandas as pd
from datetime import datetime

# ... (database connection setup using SQLAlchemy) ...

query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
         'WHERE "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s')
params = {"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)}

df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])

重要な注意:データベースドライバーのドキュメントを常に確認して、正しいパラメーターの構文を確認してください。 間違った構文を使用すると、クエリエラーが発生します。 これにより、パラメーター化されたクエリが正しくかつ安全に実行されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3