首頁 >資料庫 >mysql教程 >如何有效率地將 SQL 查詢結果轉換為 Pandas DataFrame?

如何有效率地將 SQL 查詢結果轉換為 Pandas DataFrame?

Susan Sarandon
Susan Sarandon原創
2024-12-05 22:59:14292瀏覽

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

將SQL 查詢結果轉換為Pandas 資料結構

問題:

使用者需要協助將SQL 查詢結果轉換為Pandas 資料結構。使用者嘗試列印查詢結果,但沒有獲得任何有用的信息。

解決方案:

要將SQL 查詢結果轉換為Pandas,可以採取以下步驟:

  1. 使用SQLAlchemy 的create_engengine()和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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn