在 Pandas 中執行 SQL 查詢
SQL 代表結構化查詢語言;它是一種用於與關聯式資料庫互動的著名語言。在 Python 中執行 SQL 查詢有很多方法。
在 Python 中使用 pandasql 執行 SQL 查詢
這個包有一個類似 R 中的 sqldf 的 sqldf 方法。pandasql 提供了一種更熟悉的方式來對 DataFrame 執行 CRUD 操作。
在我們使用 pandasql 之前,我們必須先使用以下命令安裝它。
#Python 3.x
pip install -U pandasql
我們將從 pandasql 模組匯入 sqldf 方法來執行查詢。然後我們將呼叫帶有兩個引數的 sqldf 方法。
第一個引數是字串格式的 SQL 查詢。第二個引數是一組會話/環境變數(globals() 或 locals())。
在以下程式碼中,首先,我們將 Student.csv 資料上傳到 Jupyter 筆記本的當前工作目錄。然後我們在 DataFrame 上使用傳統的 SQL Select 查詢讀取了學生的記錄;它將顯示 DataFrame 中的所有記錄。
# Python 3.x
import pandas as pd
from pandasql import sqldf
def mysql(q):
return sqldf(q, globals())
df = pd.read_csv("Student.csv")
mysql("SELECT * FROM df")
輸出:

我們在 SQL 查詢中使用了 WHERE 子句,僅顯示滿足以下程式碼中給定條件的選定記錄。
# Python 3.x
import pandas as pd
from pandasql import sqldf
def mysql(q):
return sqldf(q, globals())
df = pd.read_csv("Student.csv")
mysql("SELECT * FROM df WHERE Department = 'SE'")
輸出:

在 Python 中使用 DuckDB 執行 SQL 查詢
DuckDB 是一個 Python API 和一個使用 SQL 查詢與資料庫互動的資料庫管理系統。
要使用 DuckDB,我們應該首先使用以下命令安裝它。
#Python 3.x
pip install duckdb
在下面的程式碼中,我們匯入了 duckdb 和 Pandas 包,讀取 CSV 檔案並通過使用 duckdb 呼叫 query() 方法來執行查詢。我們將查詢(作為引數)傳遞給 query() 方法。
程式碼將結果作為 DataFrame 返回。我們可以根據 DataFrame 編寫我們選擇的任何 SQL 查詢。
# Python 3.x
import pandas as pd
import duckdb
df = pd.read_csv("Student.csv")
duckdb.query("SELECT * FROM df").df()
輸出:

在 Python 中使用 Fugue 執行 SQL 查詢
Fugue 是分散式計算的統一介面,允許使用者在 Spark 和 Dask 上執行 Python、Pandas 和 SQL 程式碼而無需重寫。
我們必須先使用以下命令安裝它才能使用 fugue。
#Python 3.x
pip install fugue[sql]
我們在以下程式碼中匯入了 Pandas 和 fugue 包,並使用 CSV 檔案載入了 DataFrame。然後我們將我們的 SQL 查詢傳遞給 fsql() 方法並使用它呼叫 run() 方法。
# Python 3.x
import pandas as pd
from fugue_sql import fsql
df = pd.read_csv("Student.csv")
query = "SELECT * FROM df PRINT"
fsql(query).run()
輸出:

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn