Pandas read_sql 中的多个 WHERE 条件
Multiple WHERE conditions in Pandas read_sql
我已将数据放入 SQLite3 数据库,现在我正在尝试编写一个小脚本来访问给定日期所需的数据。我得到了 SELECT 语句来处理日期范围,但我似乎无法添加另一个条件来微调搜索。
db columns id, date, driverid, drivername, pickupStop, pickupPkg, delStop, delPkg
到目前为止我得到了什么:
import pandas as pd
import sqlite3
sql_data = 'driverperformance.sqlite'
conn = sqlite3.connect(sql_data)
cur = conn.cursor()
date_start = "2021-12-04"
date_end = "2021-12-10"
df = pd.read_sql_query("SELECT DISTINCT drivername FROM DriverPerf WHERE date BETWEEN :dstart and :dend", params={"dstart": date_start, "dend": date_end}, con=conn)
drivers = df.values.tolist()
for d in drivers:
driverDF = pd.read_sql_query("SELECT * FROM DriverPerf WHERE drivername = :driver AND date BETWEEN :dstart and :dend", params={"driver": d, "dstart": date_start, "dend": date_end}, con=conn)
我尝试了几个不同版本的“WHERE drivername”部分,但似乎总是失败。
谢谢!
如果我没记错的话,drivers
将是一个列表列表。你试过了吗
.... params={"driver": d[0] ....
我已将数据放入 SQLite3 数据库,现在我正在尝试编写一个小脚本来访问给定日期所需的数据。我得到了 SELECT 语句来处理日期范围,但我似乎无法添加另一个条件来微调搜索。
db columns id, date, driverid, drivername, pickupStop, pickupPkg, delStop, delPkg
到目前为止我得到了什么:
import pandas as pd
import sqlite3
sql_data = 'driverperformance.sqlite'
conn = sqlite3.connect(sql_data)
cur = conn.cursor()
date_start = "2021-12-04"
date_end = "2021-12-10"
df = pd.read_sql_query("SELECT DISTINCT drivername FROM DriverPerf WHERE date BETWEEN :dstart and :dend", params={"dstart": date_start, "dend": date_end}, con=conn)
drivers = df.values.tolist()
for d in drivers:
driverDF = pd.read_sql_query("SELECT * FROM DriverPerf WHERE drivername = :driver AND date BETWEEN :dstart and :dend", params={"driver": d, "dstart": date_start, "dend": date_end}, con=conn)
我尝试了几个不同版本的“WHERE drivername”部分,但似乎总是失败。
谢谢!
如果我没记错的话,drivers
将是一个列表列表。你试过了吗
.... params={"driver": d[0] ....