这是我的查询
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 )
我不想硬编码因为它容易出错,怎么想这样做呢?
答案 0 :(得分:1)
您可以使用chunksize
parameter:
sql_reader = pd.read_sql('SELECT id, timestamp, location_id FROM orders',
con=db_connection, chunksize=1000000)
dfs = [df for df in sql_reader]
dfs
- 是一个DataFrame的列表,所以:
dfs[0]
- 第一个DF(前1000000行)dfs[1]
- 第二个DF(接下来的1000000行)如果您需要一个完整的表格,pd.concat(dfs, ignore_index=True)
会返回一个DataFrame,其中包含来自orders
表的所有行
注意:如果内存不适合,您可能会遇到MemoryError
异常