ホームページ  >  記事  >  バックエンド開発  >  SQL クエリを使用して Pandas の read_sql にパラメータを渡すにはどうすればよいですか?

SQL クエリを使用して Pandas の read_sql にパラメータを渡すにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-31 04:53:30626ブラウズ

How do I pass parameters to Pandas' read_sql with SQL queries?

SQL クエリを使用して Pandas の read_sql にパラメータを渡す

Pandas を使用してパラメータを使用して SQL クエリを実行する場合、主に 2 つのアプローチがあります: パラメータをリストまたはタプルとして渡す

パラメータをリストまたはタプルとして渡す

最初の方法では、BETWEEN % などのプレースホルダーを使用した SQL クエリを作成します。 s AND %s を使用し、パラメータ値をリストまたはタプルとして渡します。これは次の例で確認できます。

<code class="python">df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %s AND %s'),
                   db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)],
                   index_col=['Timestamp'])</code>

パラメータを辞書として渡す

2 番目の方法では、名前付きパラメータを使用して SQL クエリを作成します。 BETWEEN :dstart AND :dfinish として、パラメータ値を辞書として渡します。ただし、すべてのデータベース ドライバーが名前付きパラメーターをサポートしているわけではないことに注意することが重要です。

たとえば、PostgreSQL で一般的に使用される psycopg2 は、名前付きパラメーターの %(name)s スタイルをサポートしています。次に例を示します。

<code class="python">df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s'),
                   db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
                   index_col=['Timestamp'])</code>

名前付きパラメータでサポートされている構文を確認するには、選択したデータベース ドライバーのドキュメントを必ず確認してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。