在 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