pandas read_sql_table无nrows参数 如何限制读取指定行数
解决方案
有两种常用实现方式,按需选择即可:
方案1:使用read_sql_query配合SQL LIMIT语句(更推荐)
直接在查询层面限制返回行数,性能最优,不会扫描全表:
# MySQL/PostgreSQL/SQLite等常用数据库写法,不同数据库LIMIT语法可对应调整 query = f"SELECT {','.join(cols)} FROM {schema_z2}.table LIMIT 100" df['table'] = pd.read_sql_query(query, engine)
如果使用SQL Server,将LIMIT 100替换为TOP 100放在SELECT后即可;如果使用Oracle,可添加条件WHERE ROWNUM <=100实现行数限制。
方案2:用chunksize参数直接取第一块
如果不想写原生SQL,也可以设置chunksize为你需要的行数,直接取迭代器的第一个元素即可:
df['table'] = next(pd.read_sql_table('table', engine, schema=schema_z2, columns=cols, chunksize=100))
这种方式本质上只会拉取前100行数据,不会读取全表。
内容的提问来源于stack exchange,提问作者x89
相关产品推荐
相关产品推荐

