python - 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))
解决方案
您正面临格式问题
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
推荐阅读
- c# - 绑定在 Mvvm wpf 和 controltab 中不起作用
- python - 从另一个 Dataframe 的列中为 Dataframe 中的每一行查找特定值
- react-native - 需要有关 Flatlist 和数组的帮助
- ruby-on-rails - Rails 6 在安装了 bundler -v 2.0.2 的 Docker 上运行...您必须使用 Bundler 2 或更高版本与此锁定文件
- aws-cli - 在 JMESpath 中查找 X 和 Y 之间的所有值
- sql - 如何使用 MS SQL 以逗号分隔列
- javascript - 将 javascript 对象合并为 csv 格式
- javascript - 合并以多种方式返回的多个数组/对象
- javascript - 从 API 获取数据,然后将其发送到 EJS 文件
- google-cloud-pubsub - 为什么 Google PubSub 总是创建 60 个永久线程?