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

Pandas read_sql でパラメータを渡す方法は?

2024 年 11 月 8 日に公開
ブラウズ:528

How to Pass Parameters with Pandas read_sql?

Pandas read_sql でパラメータを渡す

概要

Pandas read_sql 関数を使用すると、SQL クエリを実行し、データベースからデータを取得できます。その機能の 1 つは、クエリにパラメーターを渡す機能です。

パラメーターの構文

パラメーターはリスト、タプル、または辞書として渡すことができます。正確な構文は、使用されているデータベース ドライバーによって異なります。一般的な例をいくつか示します:

  • ?または %s: 単一値のプレースホルダー
  • :1 または :name: 単一値の名前付きプレースホルダー
  • %(name)s: string.format 構文を使用した名前付きプレースホルダー

名前付き引数での辞書の使用

パラメータを渡すための 1 つのオプションは、辞書を使用することです。これは、psycopg2 ドライバーを備えた PostgreSQL を含む、ほとんどのドライバーでサポートされています。ディクショナリ内のキーと値のペアは、クエリ内の名前付きプレースホルダーに対応します。

名前付き引数のアプローチを示すために、次の SQL クエリを考えてみましょう:

select "Timestamp", "Value" from "MyTable"
where "Timestamp" BETWEEN :dstart AND :dfinish

辞書を使用してこのクエリにパラメータを渡す方法は次のとおりです:

params = {"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)}

df = psql.read_sql(
    "select \"Timestamp\",\"Value\" from \"MyTable\" where \"Timestamp\" BETWEEN %(dstart)s AND %(dfinish)s",
    db,
    params=params,
    index_col=["Timestamp"],
)

この例では、params ディクショナリは、名前付きプレースホルダー :dstart および :dfinish の値を提供します。 %(name)s 構文により、値がクエリに正しく挿入されることが保証されます。

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

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

Copyright© 2022 湘ICP备2022001581号-3