ホームページ >データベース >mysql チュートリアル >SQL クエリ結果を Pandas DataFrame に効率的に変換するにはどうすればよいですか?

SQL クエリ結果を Pandas DataFrame に効率的に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 22:59:14293ブラウズ

How Do I Efficiently Convert SQL Query Results into a Pandas DataFrame?

SQL クエリ結果を Pandas データ構造に変換する

問題:

ユーザーが支援を必要としていますSQL クエリの結果を Pandas データ構造に変換する際。ユーザーはクエリ結果を出力しようとしましたが、有用な情報は得られませんでした。

解決策:

SQL クエリ結果を Pandas に変換するには、次の手順を実行できます。

  1. SQLAlchemy の create_engine() と connect() を使用してデータベースへの接続を確立します。関数。
  2. connection.execute() メソッドを使用して SQL クエリを実行し、結果を変数 (resoverall など) に保存します。
  3. resoverall を使用してクエリ結果からすべての行をフェッチします。 fetchall() メソッド。これはタプルのリストを返します。各タプルは行を表します。
  4. タプルのリストから Pandas DataFrame を作成します。これを行うには、タプル インデックスに基づいて列名を自動的に割り当てる DataFrame(resoverall.fetchall()) を使用します。
  5. オプションで、df.columns = resoverall.keys() を使用して特定の列名を割り当てることもできます。ここで、 resoverall.keys() は列名のリストを返します。

例コード:

from sqlalchemy import create_engine
from pandas import DataFrame

engine2 = create_engine('mysql://THE DATABASE I AM ACCESSING')
connection2 = engine2.connect()
dataid = 1022
resoverall = connection2.execute("SELECT sum(BLABLA) AS BLA, sum(BLABLABLA2) AS BLABLABLA2, sum(SOME_INT) AS SOME_INT, sum(SOME_INT2) AS SOME_INT2, 100*sum(SOME_INT2)/sum(SOME_INT) AS ctr, sum(SOME_INT2)/sum(SOME_INT) AS cpc FROM daily_report_cooked WHERE campaign_id = '%s'", %dataid)
df = DataFrame(resoverall.fetchall())
df.columns = resoverall.keys()

以上がSQL クエリ結果を Pandas DataFrame に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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