如何使用Pypyodbc將SQL查詢結果轉換為Pandas DataFrame?


Python 是一種功能強大且用途廣泛的程式語言,廣泛用於資料分析、機器學習和其他科學應用。它受歡迎的原因之一是提供了許多強大的庫和框架,使資料處理和分析變得輕而易舉。其中,Pandas 是一個流行的庫,用於在 Python 中處理表格資料。

在本教程中,我們將探討如何使用 pypyodbc 將 SQL 查詢結果轉換為 Pandas DataFrame。如果您在 Python 中處理資料,您可能會遇到需要從 SQL 資料庫中提取資料並在 Python 中對其進行操作的情況。在這種情況下,您需要將查詢結果轉換為可以使用 Python 輕鬆操作的格式。這就是 pypyodbc 和 Pandas 發揮作用的地方。在本文的下一節中,我們將討論如何設定環境並使用 pypyodbc 建立與 SQL 資料庫的連線。

如何使用 pypyodbc 將 SQL 查詢結果轉換為 Pandas DataFrame?

在深入探討如何將 SQL 查詢結果轉換為 Pandas DataFrame 之前,我們需要安裝所需的庫。我們將使用 pypyodbc 庫,它提供了一個與 ODBC 資料庫(包括 SQL Server、Oracle 和 MySQL)互動的介面。首先,確保您已安裝 pypyodbc。您可以在終端或命令提示符中執行以下命令進行安裝

pip install pypyodbc

安裝 pypyodbc 後,我們需要將其匯入到我們的 Python 指令碼中。除了 pypyodbc 之外,我們還需要匯入 Pandas 庫,稍後我們將使用它來將查詢結果轉換為 Pandas DataFrame。使用以下行在 Python 指令碼開頭匯入庫

import pypyodbc
import pandas as pd

現在我們已經匯入了必要的庫,讓我們使用 pypyodbc 建立與 SQL 資料庫的連線。要連線到您的特定 SQL 資料庫,您需要提供連線詳細資訊,例如伺服器名稱、資料庫名稱、使用者名稱和密碼。連線字串通常包含這些詳細資訊,並且根據您使用的資料庫而有所不同。

以下是使用 pypyodbc 建立與 SQL Server 資料庫連線的示例

# Establish connection to SQL database using pypyodbc
conn_str = "Driver={SQL Server};Server=server_name;Database=db_name;UID=username;PWD=password"
connection = pypyodbc.connect(conn_str)

請務必將 `server_name`、`db_name`、`username` 和 `password` 替換為您實際的連線詳細資訊。這將使用 pypyodbc 建立與 SQL 資料庫的連線,我們現在可以繼續執行 SQL 查詢並檢索資料。

將 SQL 查詢結果轉換為 Pandas DataFrame

現在我們已經建立了與 SQL 資料庫的連線並使用 pypyodbc 執行了 SQL 查詢,讓我們深入探討如何將查詢結果轉換為 Pandas DataFrame。以下是使用 pypyodbc 將 SQL 查詢結果轉換為 Pandas DataFrame 的分步指南

執行 SQL 查詢

要從 SQL 資料庫中檢索資料,我們首先需要執行 SQL 查詢。我們可以使用之前建立的連線物件來執行查詢。以下是如何執行 SQL 查詢的示例

# Execute the SQL query
cursor = connection.cursor()
query = "SELECT * FROM table_name"
cursor.execute(query)

將 table_name 替換為您要從中檢索資料的表名。遊標物件允許我們與 SQL 資料庫互動。

獲取查詢結果

執行 SQL 查詢後,我們需要獲取結果。我們可以使用遊標物件的 fetchall() 方法來檢索查詢返回的所有行。以下是一個示例

示例

# Execute the SQL query
rows = cursor.fetchall()

# Print the query results
print(rows)

輸出

[(1, 'Prince', 'Yadav', 26, 50000),
 (2, 'Mukul', 'Latiyan', 25, 60000),
 (3, 'Rohit', 'Shokeen', 24, 55000),
 (4, 'Divyang', 'Pal', 30, 65000),
 (5, 'Paras', 'Wadhwa', 35, 70000)]

從上面的輸出中可以看出,程式碼從 "employees" 表中獲取所有行並將它們儲存在 rows 變數中。print(rows) 語句顯示查詢結果,將每一行顯示為列表中的元組。每個元組代表 SQL 查詢結果集中的一個行,包含每個列的值,其順序與查詢中指定的順序相同

轉換為 Pandas DataFrame

現在,是時候將查詢結果轉換為 Pandas DataFrame 了。我們可以透過將查詢結果傳遞給 pd.DataFrame() 建構函式來實現這一點。考慮以下程式碼來實現相同的功能

示例

# Convert to Pandas Dataframe
df = pd.DataFrame(rows)

# Display the Pandas Dataframe
print(df)

df 變數現在以 Pandas DataFrame 的形式儲存查詢結果。資料框中的每一列對應於 SQL 查詢結果集中的一個列。

輸出

以上程式碼的輸出將類似於以下內容

   EmployeeID  FirstName  LastName  Age  Salary
0           1     Prince     Yadav   26   50000
1           2      Mukul   Latiyan   25   60000
2           3      Rohit   Shokeen   24   55000
3           4    Divyang       Pal   30   65000
4           5      Paras    Wadhwa   35   70000

從上面的輸出中可以看出,我們已經成功地使用 pypyodbc 將 SQL 查詢結果轉換為 Pandas DataFrame。您現在可以使用 Pandas 庫對檢索到的資料執行各種資料處理和分析任務。

結論

在本教程中,我們探討了使用 Python 中的 pypyodbc 將 SQL 查詢結果轉換為 Pandas DataFrame 的過程。我們首先設定了環境,使用 pypyodbc 建立了與 SQL 資料庫的連線,並執行了 SQL 查詢。然後,我們逐步介紹了將查詢結果轉換為 Pandas DataFrame 的過程。我們為每種方法提供了示例,使您能夠輕鬆理解和實現轉換。

更新於: 2023年7月24日

3K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.