作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
假设一个数据框scoreDF
:
date time score
sec_code
1048 2015-02-25 09:21:00 28
2888 2015-02-25 09:21:00 25
945 2015-02-25 09:21:00 23
4 2015-02-25 09:21:00 22
669 2015-02-25 09:21:00 15
我需要进行 MySQL 查询以检索与 scoreDF.index
中的值匹配的所有行,即 sec_code
列。
通常我会去循环:
finalResultDF = DataFrame()
queryString = 'SELECT * FROM tableA WHERE sec_code = ' + code
for code in scoreDF.index:
queryResultDF = sql.read_sql(queryString, con)
finalResultDF.append(queryResultDF)
是否可以在没有循环传递值列表(即 scoreDF.index
)作为 WHERE 条件的情况下以不同的方式执行此操作?我在 Google 上搜索了几个小时,有些人提到了 read_sql
的“参数”,但我无法弄明白。
最佳答案
您实际上可以在没有任何循环的情况下执行此操作。
queryString = 'SELECT * FROM tableA WHERE sec_code in '+tuple(scoreDF.index)
这将直接给出结果。这是假设 scoreDF.index
是一个 list
。如果它已经是一个 tuple
那么就没有类型转换是必需的。
关于python - 带有 WHERE 条件值列表的 pandas read_sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28735213/
我是一名优秀的程序员,十分优秀!