ホームページ > データベース > mysql チュートリアル > SQLクエリを使用してパンダのread_sqlにパラメータを渡す方法は?

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

Barbara Streisand
リリース: 2025-01-18 07:23:10
オリジナル
850 人が閲覧しました

How to Pass Parameters to pandas read_sql with SQL Queries?

パラメータ化された SQL クエリを備えた Pandas read_sql

pandas.read_sql 関数は、データベースからデータをフェッチするための強力なツールです。 SQLAlchemy エンジンを使用する場合、パラメータを SQL クエリに効果的に渡すことが重要です。 このガイドでは、位置パラメーターと名前付きパラメーターという 2 つの一般的なアプローチを説明します。

方法 1: 位置パラメータ

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

例:

<code class="language-python">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'])</code>
ログイン後にコピー

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

名前付きパラメータにより、可読性と保守性が向上します。 ただし、サポートされる構文はデータベース ドライバーによって異なります。 SQLAlchemy と psycopg2 では、%(name)s 構文が必要です。

例:

<code class="language-python">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'])</code>
ログイン後にコピー

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

以上がSQLクエリを使用してパンダのread_sqlにパラメータを渡す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート