我正在python中运行一个SQL查询,并将表的结果存储在Pandas DataFrame中。我想运行这个查询,直到找到一个条件为止。下面是一些需要处理的示例数据:
sql table1
name val
post 10
sutter 15
oak 20
import pandas as pd
# mysql connection
import pymysql
from sqlalchemy import create_engine
user = 'user1'
pwd = 'pwd'
host = 'xxxx.1.rds.amazonaws.com'
port = 3306
database = 'db1'
engine = create_engine("mysql+pymysql://{}:{}@{}/{}".format(user,pwd,host,database))
# Readdata
con = engine.connect()
v = 12
query = '''
SELECT *
FROM table1
WHERE val < {}
'''.format(v)
df = pd.read_sql(query, con)我想在满足条件之前运行这个查询。条件是数据的大小或返回的行数。上面的查询返回1行。我需要查询来更新v的值,直到满足条件为止。所以,一个while-loop就行了。
While df.shape[0] => 2:
run query如何在while-loop中运行查询并检查返回的行的#或数据的大小?
发布于 2022-04-13 09:16:42
如果您确实需要使用while True:,那么可能使用if,然后使用get数据,然后使用if检查行数,使用break退出循环,并使用v += 1运行值更大的循环。
有点像
v = 12
query = '''
SELECT *
FROM table1
WHERE val < {}
'''
while True:
df = pd.read_sql(query.format(v), con)
if df.shape[0] >= 2:
break
v += 1但是,如果数据库中只有一行,那么它可能永远工作,并且可能需要其他条件来停止它。即。while v < 10000:
https://stackoverflow.com/questions/71845617
复制相似问题