使用where子句中的变量从sqlite3读取pandas帧

时间:2015-02-13 03:49:41

标签: python sqlite pandas

我有一个相当大的sqlite3数据库,有时我在尝试将其读入Pandas数据帧时出现内存错误。我可以使用WHERE函数来限制框架的大小,以便它可以工作。

con = sqlite3.connect("myDB.db")
frame = pd_sql.read_frame('SELECT * FROM Basketball WHERE League == "NBA"', pinnyCon)

我如何命名一个变量,以便这样的东西起作用?

def GetLeagueFrame(leagueName):
    con = sqlite3.connect("myDB.db")
    frame = pd_sql.read_frame('SELECT * FROM Basketball WHERE League == leagueName', pinnyCon)
    con.close()
    return frame

1 个答案:

答案 0 :(得分:2)

您可以使用?的参数替换:

pd.read_sql_query('SELECT * FROM Basketball WHERE League = ?', con, params=(leagueName, ))

有关params关键字的详细说明,请参阅read_sql_query docstring