首页 > 解决方案 > pandasql sqldf的where子句中的日期比较

问题描述

我正在使用 pandasql sqldf 查询数据帧,但无法比较 where 子句中的日期,出现无效的语法错误。

from pandasql import sqldf
import pandas as pd

df = pd.DataFrame([['2015-05-07','2021-05-07'], ['2020-03-06','2018-06-08']],columns= ['date1','date2'])

start = '2020-01-01'
dt= '2015-05-07'
testdf = sqldf('select * from df where strftime('%Y-%m-%d', start) > strftime('%Y-%m-%d',dt))

标签: pythonpandaspandasql

解决方案


您正面临格式问题

testdf = sqldf('select * from df where strftime("%Y-%m-%d", {}) > strftime("%Y-%m-%d",{})'.format(start,dt))

输出:

       date1       date2
0  2015-05-07  2021-05-07
1  2020-03-06  2018-06-08

推荐阅读