如何使用Python自动执行SQL中的查询拆分

如何使用Python自动执行SQL中的查询拆分,python,sql,pandas,loops,dataframe,Python,Sql,Pandas,Loops,Dataframe,这是我的问题 df = pd.read_sql('SELECT id, timestamp, location_id FROM orders', con=db_connection) 我想分成两部分 df1 = pd.read_sql('SELECT id, timestamp, location_id FROM orders where id<=1000000', con=db_connection) ... df100 = pd.read_sql('SELECT id, timest

这是我的问题

df = pd.read_sql('SELECT id, timestamp, location_id FROM orders', con=db_connection)
我想分成两部分

df1 = pd.read_sql('SELECT id, timestamp, location_id FROM orders where id<=1000000', con=db_connection)
...
df100 = pd.read_sql('SELECT id, timestamp, location_id FROM orders where id>99000000 and id<=100000000', con=db_connection )
我不想硬编码,因为它很容易出错,如何实现这一点?

您可以利用:

dfs-是数据帧的列表,因此:

dfs[0]-第一个DF前1000000行 dfs[1]-第二个DF下1000000行 等等 如果需要完整的表-pd.concatdfs,ignore_index=True将返回一个数据帧,其中包含orders表中的所有行


注意:如果MemoryError异常不在内存中,您可能会得到它

所以如果我想调用一个块,我只调用df1,df2,etc@NabihIbrahimBawazir不,您访问dfs中的DF就像一个常规的Python列表一样-dfs[0]-第一个DF,dfs[1]-第二个DF,…,等等。所以,如果我调用dfs,它是一个完整的表?
sql_reader = pd.read_sql('SELECT id, timestamp, location_id FROM orders', 
                         con=db_connection, chunksize=1000000)

dfs = [df for df in sql_reader]