我有一個 SQLite 查詢,我想多次運行以根據感興趣的年份創建多個 Pandas 資料框。像這樣的東西(但這絕對行不通)。基本上,我試圖在year串列上回圈創建資料框以創建 4 個資料框(每年 1 個),現在即使在谷歌搜索了很多之后,我仍然堅持如何做到這一點。
year = [2018, 2019, 2020, 2021]
query = '''
SELECT
some stuff
FROM table
WHERE table.YEAR = ?
'''
for x in year:
df[x] = pd.read_sql_query(query, db, params=[x])
uj5u.com熱心網友回復:
在 for 回圈的每次迭代中創建一個新的資料框是一個壞主意。原因有很多,最突出的是:
- 創建的名稱可能很容易與您的邏輯已使用的變數發生沖突。
- 由于名稱是動態創建的,您通常最終也會使用動態技術來檢索資料。
所以你可以dictionary用于這個目的。
我從
您的代碼將如下所示:
query = '''
SELECT
*
FROM books
WHERE id = {id};
'''
d = {}
for i in id:
sql = query.format(id = i)
temp = pd.read_sql_query(sql, db_connection)
d[i] = pd.DataFrame(temp)
您可以使用索引訪問字典內的資料框。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/384395.html
